Swift 3.0 预览版 1 发布!
我们非常高兴地宣布 Swift 3.0 的开发者预览版 1!
正如 Swift 3.0 发布流程 中所述,开发者预览版(即 “seeds” 或 “betas”)提供了 Swift 3 的合格构建版本,这些版本比仅获取 master 的最新快照(即,主干开发的前沿)更稳定。开发者预览版捕获了正在开发中的 Swift 3,除非另有说明,否则不应将其视为 Swift 3 的最终版本。
已实现的 Swift 演进提案
以下 Swift 演进 提案是 Swift 3.0 预览版 1 中新实现的
- SE-0002: 移除柯里化
func声明语法 - SE-0003: 从函数参数中移除
var - SE-0004: 移除
++和--运算符 - SE-0005: 更好地将 Objective-C API 翻译成 Swift
- SE-0006: 将 API 设计指南应用于标准库
- SE-0007: 移除带有条件和递增器的 C 风格 for 循环
- SE-0008: 为可选类型的序列添加惰性 flatMap
- SE-0016: 向 Int 和 UInt 添加初始化器以从 UnsafePointer 和 UnsafeMutablePointer 转换
- SE-0017: 更改
Unmanaged以使用UnsafePointer - SE-0019: Swift 测试
- SE-0023: API 设计指南
- SE-0028: 现代化 Swift 的调试标识符 (__FILE__ 等)
- SE-0029: 从函数应用中移除隐式元组展开行为
- SE-0031: 调整 inout 声明以进行类型修饰
- SE-0032: 向
SequenceType添加first(where:)方法 - SE-0033: 将 Objective-C 常量导入为 Swift 类型
- SE-0034: 消除行控制语句与调试标识符的歧义
- SE-0037: 阐明注释与运算符之间的交互
- SE-0039: 现代化 Playground 字面量
- SE-0040: 将属性参数的等号替换为冒号
- SE-0043: 在带有多个模式的 'case' 标签中声明变量
- SE-0044: 作为成员导入
- SE-0046: 在所有参数(包括第一个标签)中建立一致的标签行为
- SE-0047: 默认非 Void 函数,以便在使用未使用的结果时发出警告
- SE-0048: 泛型类型别名
- SE-0049: 将 @noescape 和 @autoclosure 移动为类型属性
- SE-0053: 从函数参数中移除
let的显式使用 - SE-0054: 废除
ImplicitlyUnwrappedOptional类型 - SE-0055: 使用 Optional 显式化不安全指针的可空性
- SE-0057: 导入 Objective-C 轻量级泛型
- SE-0059: 更新 API 命名指南并相应地重写 Set API
- SE-0061: 向 autoreleasepool() 添加泛型 Result 和错误处理
- SE-0062: 引用 Objective-C 键路径
- SE-0064: 引用属性 getter 和 setter 的 Objective-C 选择器
- SE-0065: 集合和索引的新模型
- SE-0066: 标准化函数类型参数语法以要求使用括号
- SE-0069: 可变性和 Foundation 值类型
- SE-0070: 使 Optional Requirements 仅限 Objective-C
- SE-0071: 允许(大多数)关键字在成员引用中使用
- SE-0085: 包管理器命令名称
- SE-0094: 向 stdlib 添加 sequence(first:next:) 和 sequence(state:next:)
下载
Apple (Xcode)
Swift 3.0 预览版 1 可免费获取,作为 Xcode 8 beta 1 的一部分。
Linux (Ubuntu 14.04 和 Ubuntu 15.10)
Ubuntu 14.04 和 Ubuntu 15.10 的官方二进制文件可在 上 下载。
文档
Swift 3.0 的最新版本《Swift 编程语言》现已在 上提供。它也可以在 Apple iBooks 商店中免费获取。
Foundation 和 Linux (核心库)
并非所有 NS 前缀移除更改都已传播到 Foundation API 的核心库实现中。这应在未来的 beta 版本中解决。
迁移到 Swift 3
Swift 3 是一个相对于 Swift 2.2.1 的源代码不兼容版本。它包含许多语法改进和增强,但也由于 SE-0005,Objective-C API 导入到 Swift 的方式发生了大量更改。请查阅 迁移指南 以获取迁移到 Swift 3 的指导和技巧。