泛型函数
1.单一占位符泛型函数。
例如 两个数值进行处理,如果我们写成处理两个整数的话,那么再用这个方法来处理两个字符串就不能用了,这时候泛型就派上用场了。用泛型来定义一个处理两个变量的函数,该占位符表示传入的参数是什么类型,那么泛型就是什么类型的,如果是单一的泛型的话,两个变量必须是同一类型的。
例如:
func swap<MYCustomType>(inout number1:MyCustomType,inout number2:MyCustomType){
let temp = number1
number1 = number2
number2 = temp
}
2.多个占位符的泛型函数。
就是允许在泛型占位符中添加多个泛型类型参数。两个类型的参数,是因为参数使用的类型是不同的。
fun conect<FirstType,SecondType>(number1:FirstType,number2:SecondType) ->String{
let temp = "\(number1)"+"\(number2)"
}
泛型类
在类中使用泛型,就是在声明类的时候使用泛型占位符表示一个要处理的泛型即可。
泛型类的定义
class MyTestClass<MyCustomType>{
var values = [MyCustomType]()
func display(){
for var i =0;i<self.values.count; i++{
print(values[i])
}
}
}
泛型类的使用
let myClass:MyTestClass<String> = MyTestClass<String>()
myClass.values = ["aaa","bbb","ccc"];
myClass.display()
其实泛型的用处还很多,还可以用到结构体,协议,延展等,都差不多。