上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.2.5 泛型和Any类型
泛型和Any类型虽然看起来相似,但其实是有区别的。它们的区别在于Any类型会避开类型的检查,所以尽量少用或不用。而泛型既灵活又安全。下面举一个例子感受一下两者的区别:
func add<T>(_ input: T) -> T { //... return input; } func anyAdd(_ input: Any) -> Any { //... return input; }
add函数的input参数的类型和函数返回值的类型相同,而anyAdd函数的input参数的类型和函数返回值的类型不同,这样就会失控,在后续的操作中容易出错。