swift4 泛型(一)
2017-12-12 本文已影响0人
sttech
swift 泛型
- OC 是没有泛型也不支持命命空间的,但是swift中这两者都有,本章主要介绍 泛型
对于iOS开发者 使用泛型的优点是: 确保代码的灵活性,可重用的函数
eg
func show(name : String) {
print("Hello \(name)")
}
func show(age: Int){
print("Hello \(age)")
}
func show(dog:Double){
print("Hello \(dog)")
}
调用
show(age: 10)
show(name: "hahha")
show(dog: 10.9)
需要注意的是 swift 和oc的不同 oc的运行时语言,但是swift是编译时语言,所以系统会根据函数的参数的类型不同调用不同的函数,但是在开发中如何这样做会稍微有些冗余,而泛型带来的好处就是可以通过定义单个的函数来实现上面的功能
则上三个方法可以改为以下的泛型函数
func show<T>(para:T){
print("Hello \(para)")
}
func testForShow<T ,U>(name : T,object : U){
print("Hello \(name)" + "\(object)")
}
- ⚠️ LLVM 将c 和oc的代码放在一个共同的低级容器里,然后变异成机器语言,泛型并不是安全的
关于泛型的高级用法,将在(二)中讲解