我已经看过Apple开发人员站点上的Swift教程,但是我不理解泛型的概念。有人能用简单的方式解释它吗?例如:
func swapTwoValues<T>(inout a: T, inout b: T) {
let temporaryA = a
a = b
b = temporaryA
}
最佳答案
在给出的示例中不使用泛型,就必须为要交换的每种类型重载swapTwoValues
。例如:
func swapTwoValues(inout a: Int, inout b: Int) {
let temp = a
a = b
b = temp
}
func swapTwoValues(inout a: String, inout b: String) {
let temp = a
a = b
b = temp
}
// Many more swapTwoValues functions...
上面的函数之间唯一的不同是它们接受的类型。每个内部的代码完全相同。因此,最好编写一个泛型函数,该函数可以采用任何类型。
重要的是要注意您不能用
T
代替Any
。不能保证a
和b
的类型相同-例如,您不能交换Int
和String
。关于ios - Swift 2.0中的泛型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30997364/