泛型函式 1.單一佔位符泛型函式。
例如 兩個數值進行處理,如果我們寫成處理兩個整數的話,那麼再用這個方法來處理兩個字串就不能用了,這時候泛型就派上用場了。用泛型來定義一個處理兩個變數的函式,該佔位符表示傳入的引數是什麼型別,那麼泛型就是什麼型別的,如果是單一的泛型的話,兩個變數必須是同一型別的。
例如:
func swap(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{
var values = MyCustomType
func display(){
for var i =0;i<self.values.count; i++{
print(values[i])
}
}
}
泛型類的使用
let myClass:MyTestClass = MyTestClass()
myClass.values = ["aaa","bbb","ccc"];
myClass.display()
其實泛型的用處還很多,還可以用到結構體,協議,延展等,都差不多。