From 1a38c70cb3fcc9236b7bf1f224ca4d84dd6712da Mon Sep 17 00:00:00 2001 From: Eric Zhang Date: Fri, 15 Jan 2016 15:55:49 +0800 Subject: [PATCH 1/4] fixed a typo --- source/chapter2/13_Inheritance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/chapter2/13_Inheritance.md b/source/chapter2/13_Inheritance.md index 91e9d5c6..d14d94c4 100755 --- a/source/chapter2/13_Inheritance.md +++ b/source/chapter2/13_Inheritance.md @@ -24,7 +24,7 @@ ## 定义一个基类(Base class) -不继承于其它类的类,称之为*基类(base calss)*。 +不继承于其它类的类,称之为*基类(base class)*。 > 注意 Swift 中的类并不是从一个通用的基类继承而来。如果你不为你定义的类指定一个超类的话,这个类就自动成为基类。 From d78047411a1950217a8c3bd52020c4f3de1959f6 Mon Sep 17 00:00:00 2001 From: overtrue Date: Tue, 19 Jan 2016 10:47:26 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=B8=8B=E6=A0=87=E8=84=9A=E6=9C=AC=20->?= =?UTF-8?q?=20=E4=B8=8B=E6=A0=87=20#570?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/chapter2/09_Classes_and_Structures.md | 2 +- source/chapter2/14_Initialization.md | 2 +- source/chapter2/22_Protocols.md | 6 +++--- source/chapter3/09_Summary_of_the_Grammar.md | 20 ++++++++++---------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/source/chapter2/09_Classes_and_Structures.md b/source/chapter2/09_Classes_and_Structures.md index becd8c82..563ab2ca 100755 --- a/source/chapter2/09_Classes_and_Structures.md +++ b/source/chapter2/09_Classes_and_Structures.md @@ -38,7 +38,7 @@ Swift 中类和结构体有很多共同点。共同处在于: * 通过扩展以增加默认实现的功能 * 实现协议以提供某种标准功能 -更多信息请参见[属性](./10_Properties.html),[方法](./11_Methods.html),[下标脚本](./12_Subscripts.html),[构造过程](./14_Initialization.html),[扩展](./21_Extensions.html),和[协议](./22_Protocols.html)。 +更多信息请参见[属性](./10_Properties.html),[方法](./11_Methods.html),[下标](./12_Subscripts.html),[构造过程](./14_Initialization.html),[扩展](./21_Extensions.html),和[协议](./22_Protocols.html)。 与结构体相比,类还有如下的附加功能: diff --git a/source/chapter2/14_Initialization.md b/source/chapter2/14_Initialization.md index df374c77..16ffd854 100755 --- a/source/chapter2/14_Initialization.md +++ b/source/chapter2/14_Initialization.md @@ -494,7 +494,7 @@ Swift 编译器将执行 4 种有效的安全检查,以确保两段式构造 当你在编写一个和父类中指定构造器相匹配的子类构造器时,你实际上是在重写父类的这个指定构造器。因此,你必须在定义子类构造器时带上`override`修饰符。即使你重写的是系统自动提供的默认构造器,也需要带上`override`修饰符,具体内容请参考[默认构造器](#default_initializers)。 -正如重写属性,方法或者是下标脚本,`override`修饰符会让编译器去检查父类中是否有相匹配的指定构造器,并验证构造器参数是否正确。 +正如重写属性,方法或者是下标,`override`修饰符会让编译器去检查父类中是否有相匹配的指定构造器,并验证构造器参数是否正确。 > 注意 当你重写一个父类的指定构造器时,你总是需要写`override`修饰符,即使你的子类将父类的指定构造器重写为了便利构造器。 diff --git a/source/chapter2/22_Protocols.md b/source/chapter2/22_Protocols.md index 4afb1691..6014ddac 100644 --- a/source/chapter2/22_Protocols.md +++ b/source/chapter2/22_Protocols.md @@ -442,7 +442,7 @@ game.play() ## 通过扩展添加协议一致性 -即便无法修改源代码,依然可以通过扩展令已有类型采纳并符合协议。扩展可以为已有类型添加属性、方法、下标脚本以及构造器,因此可以符合协议中的相应要求。详情请在[扩展](./21_Extensions.html)章节中查看。 +即便无法修改源代码,依然可以通过扩展令已有类型采纳并符合协议。扩展可以为已有类型添加属性、方法、下标以及构造器,因此可以符合协议中的相应要求。详情请在[扩展](./21_Extensions.html)章节中查看。 > 注意 > 通过扩展令已有类型采纳并符合协议时,该类型的所有实例也会随之获得协议中定义的各项功能。 @@ -834,7 +834,7 @@ for _ in 1...5 { ## 协议扩展 -协议可以通过扩展来为采纳协议的类型提供属性、方法以及下标脚本的实现。通过这种方式,你可以基于协议本身来实现这些功能,而无需在每个采纳协议的类型中都重复同样的实现,也无需使用全局函数。 +协议可以通过扩展来为采纳协议的类型提供属性、方法以及下标的实现。通过这种方式,你可以基于协议本身来实现这些功能,而无需在每个采纳协议的类型中都重复同样的实现,也无需使用全局函数。 例如,可以扩展 `RandomNumberGenerator` 协议来提供 `randomBool()` 方法。该方法使用协议中定义的 `random()` 方法来返回一个随机的 `Bool` 值: @@ -859,7 +859,7 @@ print("And here's a random Boolean: \(generator.randomBool())") ### 提供默认实现 -可以通过协议扩展来为协议要求的属性、方法以及下标脚本提供默认的实现。如果采纳协议的类型为这些要求提供了自己的实现,那么这些自定义实现将会替代扩展中的默认实现被使用。 +可以通过协议扩展来为协议要求的属性、方法以及下标提供默认的实现。如果采纳协议的类型为这些要求提供了自己的实现,那么这些自定义实现将会替代扩展中的默认实现被使用。 > 注意 > 通过协议扩展为协议要求提供的默认实现和可选的协议要求不同。虽然在这两种情况下,采纳协议的类型都无需自己实现这些要求,但是通过扩展提供的默认实现可以直接调用,而无需使用可选链式调用。 diff --git a/source/chapter3/09_Summary_of_the_Grammar.md b/source/chapter3/09_Summary_of_the_Grammar.md index 79988361..4377da55 100755 --- a/source/chapter3/09_Summary_of_the_Grammar.md +++ b/source/chapter3/09_Summary_of_the_Grammar.md @@ -239,7 +239,7 @@ > *声明* → [*构造器声明*](../chapter3/05_Declarations.html#initializer_declaration) > *声明* → [*析构器声明*](../chapter3/05_Declarations.html#deinitializer_declaration) > *声明* → [*扩展声明*](../chapter3/05_Declarations.html#extension_declaration) -> *声明* → [*下标脚本声明*](../chapter3/05_Declarations.html#subscript_declaration) +> *声明* → [*下标声明*](../chapter3/05_Declarations.html#subscript_declaration) > *声明* → [*运算符声明*](../chapter3/05_Declarations.html#operator_declaration) > *声明(Declarations)集* → [*声明*](../chapter3/05_Declarations.html#declaration) [*声明(Declarations)集*](../chapter3/05_Declarations.html#declarations) _可选_ @@ -373,7 +373,7 @@ > *协议成员声明* → [*协议属性声明*](../chapter3/05_Declarations.html#protocol_property_declaration) > *协议成员声明* → [*协议方法声明*](../chapter3/05_Declarations.html#protocol_method_declaration) > *协议成员声明* → [*协议构造器声明*](../chapter3/05_Declarations.html#protocol_initializer_declaration) -> *协议成员声明* → [*协议下标脚本声明*](../chapter3/05_Declarations.html#protocol_subscript_declaration) +> *协议成员声明* → [*协议下标声明*](../chapter3/05_Declarations.html#protocol_subscript_declaration) > *协议成员声明* → [*协议关联类型声明*](../chapter3/05_Declarations.html#protocol_associated_type_declaration) > *协议成员声明(Declarations)集* → [*协议成员声明*](../chapter3/05_Declarations.html#protocol_member_declaration) [*协议成员声明(Declarations)集*](../chapter3/05_Declarations.html#protocol_member_declarations) _可选_ @@ -394,8 +394,8 @@ -> 协议下标脚本声明语法 -> *协议下标脚本声明* → [*下标脚本头(Head)*](../chapter3/05_Declarations.html#subscript_head) [*下标脚本结果(Result)*](../chapter3/05_Declarations.html#subscript_result) [*getter-setter关键字(Keyword)块*](../chapter3/05_Declarations.html#getter_setter_keyword_block) +> 协议下标声明语法 +> *协议下标声明* → [*下标头(Head)*](../chapter3/05_Declarations.html#subscript_head) [*下标结果(Result)*](../chapter3/05_Declarations.html#subscript_result) [*getter-setter关键字(Keyword)块*](../chapter3/05_Declarations.html#getter_setter_keyword_block) @@ -426,12 +426,12 @@ -> 下标脚本声明语法 -> *下标脚本声明* → [*下标脚本头(Head)*](../chapter3/05_Declarations.html#subscript_head) [*下标脚本结果(Result)*](../chapter3/05_Declarations.html#subscript_result) [*代码块*](../chapter3/05_Declarations.html#code_block) -> *下标脚本声明* → [*下标脚本头(Head)*](../chapter3/05_Declarations.html#subscript_head) [*下标脚本结果(Result)*](../chapter3/05_Declarations.html#subscript_result) [*getter-setter块*](../chapter3/05_Declarations.html#getter_setter_block) -> *下标脚本声明* → [*下标脚本头(Head)*](../chapter3/05_Declarations.html#subscript_head) [*下标脚本结果(Result)*](../chapter3/05_Declarations.html#subscript_result) [*getter-setter关键字(Keyword)块*](../chapter3/05_Declarations.html#getter_setter_keyword_block) -> *下标脚本头(Head)* → [*属性(Attributes)集*](../chapter3/06_Attributes.html#attributes) _可选_ [*声明修改器(declaration-modifiers)*](TODO) _可选_ **subscript** [*参数从句*](../chapter3/05_Declarations.html#parameter_clause) -> *下标脚本结果(Result)* → **->** [*属性(Attributes)集*](../chapter3/06_Attributes.html#attributes) _可选_ [*类型*](../chapter3/03_Types.html#type) +> 下标声明语法 +> *下标声明* → [*下标头(Head)*](../chapter3/05_Declarations.html#subscript_head) [*下标结果(Result)*](../chapter3/05_Declarations.html#subscript_result) [*代码块*](../chapter3/05_Declarations.html#code_block) +> *下标声明* → [*下标头(Head)*](../chapter3/05_Declarations.html#subscript_head) [*下标结果(Result)*](../chapter3/05_Declarations.html#subscript_result) [*getter-setter块*](../chapter3/05_Declarations.html#getter_setter_block) +> *下标声明* → [*下标头(Head)*](../chapter3/05_Declarations.html#subscript_head) [*下标结果(Result)*](../chapter3/05_Declarations.html#subscript_result) [*getter-setter关键字(Keyword)块*](../chapter3/05_Declarations.html#getter_setter_keyword_block) +> *下标头(Head)* → [*属性(Attributes)集*](../chapter3/06_Attributes.html#attributes) _可选_ [*声明修改器(declaration-modifiers)*](TODO) _可选_ **subscript** [*参数从句*](../chapter3/05_Declarations.html#parameter_clause) +> *下标结果(Result)* → **->** [*属性(Attributes)集*](../chapter3/06_Attributes.html#attributes) _可选_ [*类型*](../chapter3/03_Types.html#type) From 64ea022b1b6c289760ab9f0139bb2c042fb89a0e Mon Sep 17 00:00:00 2001 From: chenhao Date: Tue, 19 Jan 2016 17:14:19 +0800 Subject: [PATCH 3/4] add end --- source-tw/chapter2/06_Functions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source-tw/chapter2/06_Functions.md b/source-tw/chapter2/06_Functions.md index 6e3c5e5b..f67c6daf 100644 --- a/source-tw/chapter2/06_Functions.md +++ b/source-tw/chapter2/06_Functions.md @@ -76,7 +76,7 @@ println(sayHelloAgain("Anna")) func halfOpenRangeLength(start: Int, end: Int) -> Int { return end - start } -println(halfOpenRangeLength(1, 10)) +println(halfOpenRangeLength(1, end:10)) // prints "9" ``` From fd2fbe96569d08f0d95d093d533ad94e40bf3a42 Mon Sep 17 00:00:00 2001 From: heqichang Date: Wed, 20 Jan 2016 17:45:52 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=A0=A1=E5=AF=B9=E4=B8=80=E5=A4=84?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/chapter2/01_The_Basics.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/chapter2/01_The_Basics.md b/source/chapter2/01_The_Basics.md index 83186c91..ac36c77c 100755 --- a/source/chapter2/01_The_Basics.md +++ b/source/chapter2/01_The_Basics.md @@ -546,7 +546,7 @@ print("The status message is \(http200Status.description)") > 注意: C 和 Objective-C 中并没有可选类型这个概念。最接近的是 Objective-C 中的一个特性,一个方法要不返回一个对象要不返回`nil`,`nil`表示“缺少一个合法的对象”。然而,这只对对象起作用——对于结构体,基本的 C 类型或者枚举类型不起作用。对于这些类型,Objective-C 方法一般会返回一个特殊值(比如`NSNotFound`)来暗示值缺失。这种方法假设方法的调用者知道并记得对特殊值进行判断。然而,Swift 的可选类型可以让你暗示_任意类型_的值缺失,并不需要一个特殊值。 -来看一个例子。Swift 的`String`类型有一种构造器,作用是将一个`String`值转换成一个`Int`值。然而,并不是所有的字符串都可以转换成一个整数。字符串`"123"`可以被转换成数字`123`,但是字符串`"hello, world"`不行。 +来看一个例子。Swift 的`Int`类型有一种构造器,作用是将一个`String`值转换成一个`Int`值。然而,并不是所有的字符串都可以转换成一个整数。字符串`"123"`可以被转换成数字`123`,但是字符串`"hello, world"`不行。 下面的例子使用这种构造器来尝试将一个`String`转换成`Int`: @@ -790,3 +790,5 @@ assert(age >= 0) > 注意: 断言可能导致你的应用终止运行,所以你应当仔细设计你的代码来让非法条件不会出现。然而,在你的应用发布之前,有时候非法条件可能出现,这时使用断言可以快速发现问题。 + +