Swift3升级特点
Swift3升级特点
Swift 3 对比 Swift 2 是一次较大的升级,涉及语法、标准库、API 命名等多个方面。主要变化包括:
1. 语法变化
函数参数标签一致性:函数的第一个参数默认需要标签。例如:
1 2 3 4 5 6 7
// Swift 2 func greet(name: String) {} greet("Tom") // Swift 3 func greet(name: String) {} greet(name: "Tom")
关键字简化:废弃了
var
参数,改用inout
来指示可变参数。
2. API 命名规范
Swift 3 统一了 API 命名风格,采用更接近 Swift 风格的命名,强调方法名的动词性。例如:
1
2
3
4
5
// Swift 2
array.insert(0, atIndex: 0)
// Swift 3
array.insert(0, at: 0)
3. Optional 的改进
Optional
解包更安全:改进了对Optional
值的处理,尤其是在字典中。1 2 3 4 5
// Swift 2 let value = dictionary["key"] // Swift 3 let value = dictionary["key"] ?? defaultValue
4. Grand Central Dispatch (GCD)
简化
GCD API 变得更简洁,使用闭包和 Swift 风格的接口。
1
2
3
4
5
6
7
8
9
// Swift 2
dispatch_async(dispatch_get_main_queue()) {
print("Hello")
}
// Swift 3
DispatchQueue.main.async {
print("Hello")
}
5. Foundation 桥接改进
NSNumber
、NSString
等类型与 Swift 类型的桥接变得更加自然,避免过多的显式类型转换。
6. 废弃 C 风格的 for 循环
传统 C 风格的 for
循环被废弃:
1
2
3
4
5
6
7
8
9
// Swift 2
for var i = 0; i < 10; i++ {
print(i)
}
// Swift 3
for i in 0..<10 {
print(i)
}
7. Core Graphics 类型简化
Core Graphics 类型(如 CGRect
, CGPoint
等)变为值类型,不再需要通过函数初始化。
This post is licensed under CC BY 4.0 by the author.