Files
the-swift-programming-langu…/source/chapter1/03_revision_history.md
oldcodeoberyn 67afe27fb9 Update from OldCoder Oberyn
完成了history revision的翻译,同时完成部分校对
2014-08-13 22:37:52 +08:00

20 KiB
Raw Blame History

翻译:成都老码团队翻译组-Ayra
校对:成都老码团队翻译组-Oberyn

Swift 版本历史记录


本页内容包括:

以下部分是针对XCode6每一次Beta版本直至正式版发布Swift语法部分的更新归类

XCode6 Beta5中Swift语法更新

发布日期 语法变更记录
2014-08-04
  • 可选类型Optionals 若有值时,不再隐式的转换为 true,同样,若无值时,也不再隐式的转换为 false, 这是为了避免在判别 optional Bool 的值时产生困惑。 替代的方案是,用==!= 运算符显式地去判断Optinal是否是 nil,以确认其是否包含值。

  • Swift新增了一个 Nil合并运算符Nil Coalescing Operator (a ?? b), 该表达式中如果Optional a的值存在则取得它并返回若Optional anil,则返回默认值 b

  • 更新和扩展 字符串的比较Comparing Strings 章节,用以反映和展示'字符串和字符的比较',以及'前缀prefix/后缀(postfix)比较'都开始基于扩展字符集(extended grapheme clusters)规范的等价比较.

  • 现在,你可以通过 可选链Optional Chaining给属性设值将其赋给一个下标脚注subscript; 或调用一个变异mutating方法或运算符。对此章节——通过可选链访问属性Accessing Properties Through Optional Chaining的内容已经被相应的更新。而章节——通过可选链调用方法Calling Methods Through Optional Chaining中,关于检查方法调用是否成功的例子,已被扩展为展示如何检查一个属性是否被设值成功。

    	</li>
    	<li><p>
    		在章节可选链中,增加一个新的小节 <a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/OptionalChaining.html#//apple_ref/doc/uid/TP40014097-CH21-XID_364">访问可选类型的下标脚注Accessing Subscripts of Optional Type</a>
    	</li>
    	<li><p>
    		更新章节 <a href="CollectionTypes.html#//apple_ref/doc/uid/TP40014097-CH8-XID_176" data-id="//apple_ref/doc/uid/TP40014097-CH8-XID_176">访问和修改数组(Accessing and Modifying an Array)</a> 以标示:从该版本起,不能再通过<code>+=</code> 运算符给一个数组添加一个新的项。. 对应的替代方案是, 使<code>append</code> 方法, 或者通过<code>+=</code>运算符来添加一个<b>只有一个项的数组</b>single-item Array.</li>
    	<li><p>
    		添加了一个提示:在 <a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/BasicOperators.html#//apple_ref/doc/uid/TP40014097-CH6-XID_126">范围运算符Range Operators</a>中,比如, <code>a...b</code> 和 <code>a..&lt;b</code> ,起始值<code>a</code>不能大于结束值<code>b</code>.
    	</li>
    	<li><p>
    		重写了<a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Inheritance.html#//apple_ref/doc/uid/TP40014097-CH17-XID_293">继承Inheritance</a> 这一章:删除了这一章中关于构造器覆盖的介绍性报道;转而将更多的注意力放到新增的部分——子类的新功能,以及如何通过覆盖修改已有的功能。另外,小节 <a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Inheritance.html#//apple_ref/doc/uid/TP40014097-CH17-XID_301">重写对象属性的的Getters和SettersOverriding Property Getters and Setters</a> 中的例子已经被替换为展示如何重写一个 <code>description</code> 属性. (而关于如何在子类的构造器中修改继承属性的默认值的例子,已经被移到继承 <a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Inheritance.html#//apple_ref/doc/uid/TP40014097-CH17-XID_293">继承Initialization</a> 这一章.)
    	</li>
    	<li><p>
    		更新了 <a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html#//apple_ref/doc/uid/TP40014097-CH18-XID_331">构造器的集成与覆盖Initializer Inheritance and Overriding</a> 小节以标示: 重写一个特定的构造器必须使用 <code>override</code> 修改器.
    	</li>
    	<li><p>
    		更新 <a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html#//apple_ref/doc/uid/TP40014097-CH18-XID_339"> Required构造器Required Initializers 小节以标示:<code>required</code> 修改器现在需要出现在所有子类的required构造器的声明中, 而required构造器的实现现在可以仅使用自动集成的部分。
    	</li>
    	<li><p>
    		中置Infix的 <a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AdvancedOperators.html#//apple_ref/doc/uid/TP40014097-CH27-XID_80">运算符函数Operator Functions</a> 不再需要<code>@infix</code> 属性.
    	</li>
    	<li><p>
    		<a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/RevisionHistory.html#//apple_ref/doc/uid/TP40014097-CH40-XID_1631">前置和后置运算符(Prefix and Postfix Operators)</a>的<code>@prefix</code> 和 <code>@postfix</code> 属性,已变更为 <code>prefix</code> 和 <code>postfix</code> 声明修改器declaration modifiers.
    	</li>
    		<li><p>
    		增加一条注解当Prefix和postfix运算符被作用于同一个操作数时关于<a href="AdvancedOperators.html#//apple_ref/doc/uid/TP40014097-CH27-XID_81" data-id="//apple_ref/doc/uid/TP40014097-CH27-XID_81">前置和后置运算符(Prefix and Postfix Operators)</a>的顺序(postfix运算符会先被执行)
    	</li>
    	<li><p>
    		在运算符函数Operator functions <a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AdvancedOperators.html#//apple_ref/doc/uid/TP40014097-CH27-XID_82" data-id="//apple_ref/doc/uid/TP40014097-CH27-XID_82">组合赋值运算符Compound Assignment Operators</a> 不再使用 <code>@assignment</code> 属性来定义函数.
    	</li>
    	<li><p>
    		在这个版本中,在定义<a href="https://apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AdvancedOperators.html#//apple_ref/doc/uid/TP40014097-CH27-XID_85">自定义操作符Custom Operators</a> 时,<b>修改器Modifiers的出现顺序发生变化</b>。比如, 现在,你该编写 <code>prefix operator</code> 而不是 <code>operator prefix</code>.
    	</li>
    	<li><p>
    		增加信息:关于<code>dynamic</code> 声明修改器declaration modifier于章节 <a href="Declarations.html#//apple_ref/doc/uid/TP40014097-CH34-XID_705" data-id="//apple_ref/doc/uid/TP40014097-CH34-XID_705">声明修改器Declaration Modifiers</a>.
    	</li>
    	<li><p>
    		增加信息关于类型推导type inference如何作用于字面量<a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/LexicalStructure.html#//apple_ref/doc/uid/TP40014097-CH30-XID_886>Literals</a>.
    	</li>
    	<li><p>
    		为章节<a href="https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/doc/uid/TP40014097-CH34-XID_597">Curried Functions</a>添加了更多的信息.
    	</li>
    	</ul>
    </td>
    
#### XCode6 Beta4中Swift语法更新
发布日期 语法变更记录
2014-07-21
#### XCode6 Beta3中Swift语法更新
发布日期 语法变更记录
2014-07-7
#### XCode6 Beta2中Swift语法更新
发布日期 语法变更记录
2014-07-7
  • 发布新的文档用以详述Swift - 苹果公司针对iOS和OS X应用的全新开发语言

#### XCode6 Beta1中Swift语法更新
发布日期 语法变更记录
2014-06-3
  • 苹果全球开发者大会WWDC2014召开发布了苹果最新的开发语言Swift并释放出XCode6 Beta1版本