文档修订历史

由于我们的项目从 Swift 2.0 开始翻译,所以版本历史从6月8号的 Swift 2.0 修订记录开始,更早的内容不予翻译。

本页面记录了 Swift 编程语言 的版本修订历史:

2017年02月06日

  • 添加了一个可失败数字化转换栗子到可失败初始化器小节;
  • 更新了函数类型小节的讨论来说明实际参数标签不能写在函数类型里。

2017年01月24日

  • 为 Swift 3.1 进行了更新;
  • 为包含需求的扩展信息添加了 带有 Where 分句的扩展 小节;
  • 为 声明标注 小节添加了关于使用 available 标注 Swift 语言版本的信息;
  • 更新了可选编译代码块中关于 Swift 语言版本号的讨论,现在可选补丁版本;
  • 更新了函数类型小节中的讨论,现在 Swift 对于接收多个形式参数的函数和接收一个元组作为形式参数的函数两者之间的区别。

2016年10月27日

  • 为 Swift 3.0.1 进行了更新;
  • 更新了自动引用计数章节中关于弱引用和无主引用的讨论;
  • 添加了关于 unowned 、 unowned(safe) 、 unowned(unsafe) 声明修饰符到声明修饰符章节;
  • 添加了一个关于在显式声明类型为 Any 时使用可选项值的注意事项到Any和AnyObject的类型转换章节;
  • 更新了表达式章节来分隔括号表达式和元组表达式。

2016年09月13日

  • 为 Swift 3.0 进行了更新;
  • 更新了函数章节和函数声明小节关于函数的讨论来提醒所有的形式参数默认都有一个实际参数标签;
  • 更新了高级运算符章节,现在你可以以类型方法实现它们而不是全局函数了;
  • 添加了关于 open 和 fileprivate 权限修饰符到访问控制章节;
  • 更新了函数声明章节中关于 inout 的讨论以说明它出现在形式参数类型中;
  • 更新了非逃逸闭包自动闭包以及特性章节中的 @noescape 和 @autoclosure 相关讨论,现在他们是类型标志了,而不是声明标志;
  • 高级运算符章节的自定义中缀运算符的优先级小节以及声明章节的优先级组声明小节中添加了关于运算符优先级组的信息;
  • 更新了全局使用 macOS 而不是 OS X, Error 而不是 ErrorProtocol ,以及协议名字比如 ExpressibleByStringLiteral 而不是 StringLiteralConvertible ;
  • 更新了泛型章节的泛型 Where 分句以及泛型形式参数和实际参数章节,现在泛型 where 分句作为声明的末尾来写;
  • 更新了逃逸闭包小节,现在闭包默认为非逃逸了;
  • 更新了基础内容章节以及语句章节的可选绑定小节和 While 语句小节,现在 if , while 和 guard 语句不使用 where 而是使用逗号分隔条件列表;
  • 添加了关于 switch 的情况能够包含多个模式的信息到控制流章节的Switch小节,以及语句章节的Switch语句小节;
  • 更新函数类型小节关于函数类型的讨论,现在函数实际参数标签不再是函数类型的一部分;
  • 更新了协议章节的协议组合小节的协议组合类型,以及类型章节的协议组合类型小节来使用新的 Protocol1 & Protocol2 语法;
  • 更新动态类型表达式小节的讨论以使用新的 type(of:) 语法;
  • 在行控制语句小节更新了控制语句的讨论来使用 #sourceLocation(file:line:) 语法;
  • 更新了永不返回的函数中的讨论来使用新的 Never 类型;
  • 添加了关于 Playground 字面量的信息到字面量表达式小节;
  • 更新了输入输出形式参数小节来说明只有非逃逸闭包才能捕获输入输出形式参数;
  • 更新了默认形式参数值小节中关于默认形式参数的讨论,现在它们不能在函数的调用中改变顺序了;
  • 更新了标志章节来让实际参数使用分号;
  • 添加了关于在 catch 代码块中再次抛出错误的功能到函数和方法的再次抛出小节;
  • 添加了关于访问 Objective-C 属性的 getter 或者 setter 的 selector 的信息到Selector 选择器;
  • 在类型别名声明小节中添加了关于泛型类型别名以及在协议中使用类型别名的信息;
  • 更新了函数类型小节中关于函数类型的讨论来说明需要圆括号包围形式参数类型;
  • 更新了特性章节来说明 @IBAction , @IBOutlet 以及 @NSManaged 特性隐含 @objc 特性;
  • 添加了 @GKInspectable 特性到声明特性小节;
  • 更新了可选协议需求小节中关于可选协议需求的讨论以说明它们仅仅在与 Objective-C 交互的时候才会用到;
  • 移除了函数声明章节中关于在函数形式参数中显式使用 let 的讨论;
  • 移除了语句章节中关于 Boolean 协议的讨论,现在这个协议已经从 Swift 标准库中移除了;
  • 更正了声明特性@NSApplicationMain 特性的讨论。

2016年03月21日

  • 为 Swift 2.2 进行了更新;
  • 添加了关于如何基于正在使用的 Swift 版本分情况编译代码的信息到编译配置语句小节;
  • 添加了关于如何区分仅实际参数名称不同的初始化器和方法的信息到显式成员表达式章节;
  • 添加了关于 Object-C 中 #selector 语法的信息到 Selector 表达式小节;
  • 更新了关联类型协议关联类型声明小节中关联类型的讨论以使用 associatedtype ;
  • 添加了关于在实例完全初始化前返回 nil 的初始化器信息到可失败的初始化器小节;
  • 添加了关于对比元组的信息到比较运算符小节;
  • 添加了关于把关键字作为外部形式参数名的信息到关键字和标点符号小节;
  • 更新了声明标志小节中对于 @objc 的讨论以注明枚举和枚举情况能使用这个标志;
  • 更新了运算符小节对包含点的自定义运算符的讨论;
  • 重抛出方法和函数小节添加了一个注记,重抛出函数不能直接抛出错误;
  • 添加了一个注记到属性观察者小节,属性观察者会在你以输入输出形式参数传入参数时调用;
  • 添加了关于错误处理小节到 Swift 概览章节;
  • 更新了弱引用小节的图示以更清晰地显示释放过程;
  • 移除了对 C 风格的 for 循环, ++ 缀和后缀运算符以及 -- 前缀和后缀运算符的讨论;
  • 移除了对于可变函数实际参数以及对递归函数的特殊语法的讨论。

2015年10月20日

  • 为Swift 2.1 做了更新。
  • 添加了非逃逸闭包小节,关于 @noescape 标注的一些信息。
  • 更新了字符串插值字符串字面量小节,现在字符串插值可以包含字符串字面量。
  • 更新了声明标注构建配置语句小节关于tvOS的信息。
  • 添加了关于输入输出形式参数的信息到输入输出形式参数小节。
  • 添加了信息到捕获列表小节,关于值是如何在闭包捕获列表被确定和捕获的。
  • 更新了通过可选链访问属性小节来明确通过可选链赋值的行为。
  • 自动闭包小节引入了自动闭包的讨论。
  • 添加了使用 ?? 运算符的栗子到 Swift 概览 章节。

2015年9月16日

  • 为 Swift 2.0 进行了更新。
  • 添加了关于错误处理的信息到错误处理一章,Do语句一节,Throw语句一节,Defer语句一节以及Try运算符一节。
  • 添加了关于 API 可用性检查的信息到控制流一章的检查 API 可用性一节,以及语句章节的可用性条件(此处应有链接)小节。
  • 添加了关于 guard 语句的信息到控制流一章的提前退出小节以及语句章节的Guard语句(此处应有链接)小节。
  • 添加了关于协议扩展的信息到协议一章的协议扩展小节。
  • 添加了关于单元测试的访问控制信息到访问控制一章的单元测试目标的访问等级(此处应有链接)小节。
  • 添加了关于新可选模式的信息到模式一章的可选模式(此处应有链接)小节。
  • 更新了 Repeat-While 小节,关于 Repeat-While 循环。
  • 更新了声明标注(此处应有链接)小节,关于 @available 和 @warn_unused_result 标注。
  • 更新了字符串和字符章节,现在 String 不在遵循 Swift 标准库的 CollectionType 协议。
  • 添加了关于新 Swift 标准库 print(_:separator:terminator) 函数的信息到打印常量和变量(此处应有链接)小节。
  • 添加了关于递归枚举的信息到枚举一章的递归枚举章节,以及声明一章的任意类型情况的枚举(此处应有链接)章节。
  • 添加了关于 @autoclosure 标志的信息——包括它的 @autoclosure(escaping) 形式——到自动闭包小节。
  • 更新了声明特性(此处应有链接)小节关于 @available 和 @warn_unused_result 标注的信息。
  • 更新了类型标注(此处应有链接)小节,关于 @convention 标注。
  • 添加了一个使用 where 分句进行多可选项绑定的栗子到可选项绑定小节。
  • 字符串字面量小节添加了关于如何在编译时使用 +  运算符串联字符串。
  • 添加了一个注意事项到Metatype 类型(此处应有链接)章节,关于从 metatype  值构造类实例。
  • 添加了一个注意事项到使用断言进行调试小节,关于何时用户定义断言是失效的。
  • 更新了声明特性(此处应有链接)小节 @NSManaged标注的讨论,现在标注可以应用到确定的实例方法上了。
  • 更新了可变形式参数小节,现在可变形式参数能被声明在函数形式参数列表的任意位置。
  • 添加了关于不可失败初始化器如何通过强制展开父类初始化器结果来向上委托可失败初始化器的相关信息到如何重写可失败初始化器章节。
  • 添加了使用枚举 case 作为函数的信息到任意类型case的枚举(此处应有链接)章节。
  • 添加了关于显式引用一个初始化器的信息到初始化器表达式章节。
  • 添加了关于创建配置和线性控制语句的信息到编译器控制语句(此处应有链接)章节。
  • 元类型(此处应有链接)小节添加了关于对比元类型值并且使用他们与初始化器语法来构造实例。
  • 添加了一个注意事项到弱引用章节,关于弱引用因缓存变得不合适。
  • 更新了类型属性(此处应有链接)章节中的一个注意事项来提醒储存类型属性是惰性初始化的。
  • 更新了捕获值一节来明确变量和常量是如何在闭包中被捕获的。
  • 更新了声明特性(此处应有链接)一节来描述你何时能给类应用 @objc 标注。
  • 添加了一个注意事项到处理错误一节,关于执行 throw 语句的性能。添加了关于 do 语句类似的信息到Do语句一节。
  • 更新了类型属性小节,关于类、结构体和枚举的储存和计算类型属性。
  • 更新了Break语句小节,关于打了标签的 break 语句。
  • 更新了属性观察者小节中的一个注意事项,明确了 willSet 和 didSet 观察者。
  • 添加了一个注意事项到访问等级(此处应有链接)小节,关于 private 访问的生效范围。
  • 添加了一个注意事项到弱引用章节,关于垃圾收集器和ARC中弱引用的不同。
  • 更新了字符串字面量中的特殊字符小节,增加了更多关于 Unicode 标量的清晰定义。

以下的更新记录被苹果去掉了,但我保留了下来。

  • 添加了关于新的 try? 关键字到转换错误到可选项小节。
  • 更新了 表示错误(此处应有链接) 章节,现在所有的类型都能够遵循ErrorType协议
  • 添加了关于枚举情况对 String原始值行为的信息到枚举一章的隐式指定的原始值章节以及声明一章的原始值类型情况的枚举(此处应有链接)章节。
  • 添加了关于泛型的类型别名到类型别名声明章节;