什么是Any类型的泛型?

时间:2014-12-03 05:46:50

标签: swift

对不起,如果这是一个愚蠢的问题。我刚刚阅读了快速的文档,但我无法弄清楚泛型。

如果我有以下内容:

func swapTwoInts<T>(inout a: T, inout b: T) {
let tempa = a
a = b
b = tempa
}

var num1 = "uno"
var num2 = "dos"
swap(&num1, &num2)

怎么样

func swapTwoInts (inout a: Any, inout b: Any) {
let tempa = a
a = b
b = tempa
}


var num1 = "uno"
var num2 = "dos"
swap(&num1, &num2)

有什么不同吗?你需要使用泛型而不是Any类型的一些例子在哪里?

2 个答案:

答案 0 :(得分:1)

“通用函数允许您在函数的参数和结果上使用Swift的类型安全性来编写更安全,更清晰的代码。”

有相同的问题(和答案here

答案 1 :(得分:0)

泛型只是不必为不同数据类型重写相同代码的便捷方法。假设您希望在程序的两个不同时间交换字符串以及两个整数 - 要么写两个函数执行完全相同的操作,要么使用一个泛型函数。