diff --git a/source/SUMMARY.md b/source/SUMMARY.md index 218ace9d..4247ef94 100755 --- a/source/SUMMARY.md +++ b/source/SUMMARY.md @@ -27,7 +27,8 @@ * [扩展](chapter2/20_Extensions.md) * [协议](chapter2/21_Protocols.md) * [泛型](chapter2/22_Generics.md) - * [高级操作符](chapter2/23_Advanced_Operators.md) + * [权限控制](chapter2/23_Access Control.md) + * [高级操作符](chapter2/24_Advanced_Operators.md) * [语言参考](chapter3/chapter3.md) * [关于语言参考](chapter3/01_About_the_Language_Reference.md) * [词法结构](chapter3/02_Lexical_Structure.md) diff --git a/source/chapter1/03_revision_history.md b/source/chapter1/03_revision_history.md index f8d22075..57d862b9 100644 --- a/source/chapter1/03_revision_history.md +++ b/source/chapter1/03_revision_history.md @@ -16,6 +16,181 @@ # XCode6 Beta5中Swift语法更新 + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ Date +

+ Notes +

+ 2014-08-04 +

    +
  • + Optionals no longer implicitly evaluate to true when they have a value and false when they do not, to avoid confusion when working with optional Bool values. Instead, make an explicit check against nil with the == or != operators to find out if an optional contains a value. +

    +
  • + Swift now has a Nil Coalescing Operator (a ?? b), which unwraps an optional’s value if it exists, or returns a default value if the optional is nil. +

    +
  • + Updated and expanded the Comparing Strings section to reflect and demonstrate that string and character comparison and prefix / suffix comparison are now based on Unicode canonical equivalence of extended grapheme clusters. +

    +
  • + You can now try to set a property’s value, assign to a subscript, or call a mutating method or operator through Optional Chaining. The information about Accessing Properties Through Optional Chaining has been updated accordingly, and the examples of checking for method call success in Calling Methods Through Optional Chaining have been expanded to show how to check for property setting success. +

    +
  • + Added a new section about Accessing Subscripts of Optional Type through optional chaining. +

    +
  • + Updated the Accessing and Modifying an Array section to note that you can no longer append a single item to an array with the += operator. Instead, use the append method, or append a single-item array with the += operator. +

    +
  • + Added a note that the start value a for the Range Operators a...b and a..<b must not be greater than the end value b. +

    +
  • + Rewrote the Inheritance chapter to remove its introductory coverage of initializer overrides. This chapter now focuses more on the addition of new functionality in a subclass, and the modification of existing functionality with overrides. The chapter’s example of Overriding Property Getters and Setters has been rewritten to show how to override a description property. (The examples of modifying an inherited property’s default value in a subclass initializer have been moved to the Initialization chapter.) +

    +
  • + Updated the Initializer Inheritance and Overriding section to note that overrides of a designated initializer must now be marked with the override modifier. +

    +
  • + Updated the Required Initializers section to note that the required modifier is now written before every subclass implementation of a required initializer, and that the requirements for required initializers can now be satisfied by automatically inherited initializers. +

    +
  • + Infix Operator Functions no longer require the @infix attribute. +

    +
  • + The @prefix and @postfix attributes for Prefix and Postfix Operators have been replaced by prefix and postfix declaration modifiers. +

    +
  • + Added a note about the order in which Prefix and Postfix Operators are applied when both a prefix and a postfix operator are applied to the same operand. +

    +
  • + Operator functions for Compound Assignment Operators no longer use the @assignment attribute when defining the function. +

    +
  • + The order in which modifiers are specified when defining Custom Operators has changed. You now write prefix operator rather than operator prefix, for example. +

    +
  • + Added information about the dynamic declaration modifier in Declaration Modifiers. +

    +
  • + Added information about how type inference works with Literals. +

    +
  • + Added more information about Curried Functions. +

    +
  • +

+ 2014-07-21 +

+ 2014-07-07 +

+ 2014-06-02 + +
  • + 发布新的文档用以详述Swift - 苹果公司针对iOS和OS X应用的全新开发语言 +
  • +
    + diff --git a/source/chapter2/01_The_Basics.md b/source/chapter2/01_The_Basics.md index e0577f73..6d71bbaa 100755 --- a/source/chapter2/01_The_Basics.md +++ b/source/chapter2/01_The_Basics.md @@ -442,7 +442,7 @@ if i == 1 { ## 元组 -_元组(tuples)_把多个值组合成一个复合值。元组内的值可以使任意类型,并不要求是相同类型。 +_元组(tuples)_把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。 下面这个例子中,`(404, "Not Found")`是一个描述 _HTTP 状态码(HTTP status code)_的元组。HTTP 状态码是当你请求网页的时候 web 服务器返回的一个特殊值。如果你请求的网页不存在就会返回一个`404 Not Found`状态码。 diff --git a/source/chapter2/02_Basic_Operators.md b/source/chapter2/02_Basic_Operators.md index 87c2d918..50ce0912 100755 --- a/source/chapter2/02_Basic_Operators.md +++ b/source/chapter2/02_Basic_Operators.md @@ -46,7 +46,7 @@ a = b // a 现在等于 10 ``` -如果赋值的右边是一个多元组,它的元素可以马上被分解多个变量或变量: +如果赋值的右边是一个多元组,它的元素可以马上被分解多个常量或变量: ```swiflt let (x, y) = (1, 2) @@ -391,7 +391,7 @@ if !allowedEntry { 只要任意一个值为`false`,整个表达式的值就为`false`。事实上,如果第一个值为`false`,那么是不去计算第二个值的,因为它已经不可能影响整个表达式的结果了。这被称做 "短路计算(short-circuit evaluation)"。 -以下例子,只有两个`Bool`值都为`true`值的时候才允许进入: +以下例子,只有两个`Bool`值都为`true`的时候才允许进入: ```swift let enteredDoorCode = true