首页 > 代码库 > Swift泛型
Swift泛型
泛型函数可以工作于任何类型,这里是一个上面swapTwoInts函数的泛型版本,用于交换两个值:
swapTwoValues函数主体和swapTwoInts函数是一样,而且,只在第一行稍微有那么一点点不同于swapTwoInts,如下所示:
这个函数的泛型版本使用了节点类型命名(通常此情况下用字母T来表示)来代替实际类型名(如Int、String或Double)。节点类型名并不是表示T必须是任何类型,但是其规定a和b必须是同一类型的T,而不管T表示任何类型。只有swapTwoValues函数在每次调用时所传入的实际类型决定了T所代表的类型。
另外一个不同之处在于这个泛型函数名后面跟着的节点类型名(T)是用尖括号括起来的()。这个尖括号告诉Swift那个T是swapTwoValues函数所定义的一个节点类型。因为T是一个节点,Swift不会去查找每一个命名为T的实际类型。完整版请查看:Swift泛型或者Swift中文网
swapTwoValues函数除了只要传入的两个任何类型值是同一类型外,也可以作为swapTwoInts函数被调用。每次swapTwoValues被调用,T所代表的类型值都会传给函数。
func swapTwoValues<T>(inout a: T, inout b: T) { let temporaryA = a a = b b = temporaryA }
func swapTwoInts(inout a: Int, inout b: Int) func swapTwoValues<T>(inout a: T, inout b: T)
另外一个不同之处在于这个泛型函数名后面跟着的节点类型名(T)是用尖括号括起来的()。这个尖括号告诉Swift那个T是swapTwoValues函数所定义的一个节点类型。因为T是一个节点,Swift不会去查找每一个命名为T的实际类型。完整版请查看:Swift泛型或者Swift中文网
swapTwoValues函数除了只要传入的两个任何类型值是同一类型外,也可以作为swapTwoInts函数被调用。每次swapTwoValues被调用,T所代表的类型值都会传给函数。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。