我已经看过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。不能保证ab的类型相同-例如,您不能交换IntString

关于ios - Swift 2.0中的泛型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30997364/

10-11 04:27