修正标点与空格错误 (#851)

* 修正 source/chapter2/04_Collection_Types.md 错误的空格与标点

* 修正 source/chapter2/05_Control_Flow.md 错误的空格与标点使用

* 修正 source/chapter2/06_Functions.md 去除多余空格
This commit is contained in:
BqLin
2019-01-05 00:36:11 +08:00
committed by Jie Liang
parent a8d4536826
commit a6a14ebcbe
3 changed files with 13 additions and 14 deletions

View File

@ -259,9 +259,9 @@ for (index, value) in shoppingList. enumerated() {
<a name="hash_values_for_set_types"></a> <a name="hash_values_for_set_types"></a>
### 集合类型的哈希值 ### 集合类型的哈希值
一个类型为了存储在集合中,该类型必须是*可哈希化*的--也就是说,该类型必须提供一个方法来计算它的*哈希值*。一个哈希值是 `Int` 类型的,相等的对象哈希值必须相同,比如 `a==b`,因此必须 `a.hashValue == b.hashValue` 一个类型为了存储在集合中,该类型必须是*可哈希化*的——也就是说,该类型必须提供一个方法来计算它的*哈希值*。一个哈希值是 `Int` 类型的,相等的对象哈希值必须相同,比如 `a==b`,因此必须 `a.hashValue == b.hashValue`
Swift 的所有基本类型(比如 `String`,`Int`,`Double``Bool`)默认都是可哈希化的,可以作为集合的值的类型或者字典的键的类型。没有关联值的枚举成员值(在[枚举](./08_Enumerations.html)有讲述)默认也是可哈希化的。 Swift 的所有基本类型(比如 `String``Int``Double``Bool`)默认都是可哈希化的,可以作为集合的值的类型或者字典的键的类型。没有关联值的枚举成员值(在[枚举](./08_Enumerations.html)有讲述)默认也是可哈希化的。
> 注意 > 注意
> >
@ -301,7 +301,7 @@ print("letters is of type Set<Character> with \(letters.count) items.")
letters.insert("a") letters.insert("a")
// letters 现在含有1个 Character 类型的值 // letters 现在含有1个 Character 类型的值
letters = [] letters = []
// letters 现在是一个空的 Set, 但是它依然是 Set<Character> 类型 // letters 现在是一个空的 Set但是它依然是 Set<Character> 类型
``` ```
<a name="creating_a_set_with_an_array_literal"></a> <a name="creating_a_set_with_an_array_literal"></a>
@ -417,7 +417,7 @@ for genre in favoriteGenres.sorted() {
<a name="fundamental_set_operations"></a> <a name="fundamental_set_operations"></a>
### 基本集合操作 ### 基本集合操作
下面的插图描述了两个集合-`a``b`-以及通过阴影部分的区域显示集合各种操作的结果。 下面的插图描述了两个集合 `a``b`以及通过阴影部分的区域显示集合各种操作的结果。
![](https://docs.swift.org/swift-book/_images/setVennDiagram_2x.png) ![](https://docs.swift.org/swift-book/_images/setVennDiagram_2x.png)
@ -444,7 +444,7 @@ oddDigits. symmetricDifference(singleDigitPrimeNumbers).sorted()
<a name="set_membership_and_equality"></a> <a name="set_membership_and_equality"></a>
### 集合成员关系和相等 ### 集合成员关系和相等
下面的插图描述了三个集合-`a`,`b``c`,以及通过重叠区域表述集合间共享的元素。集合 `a` 是集合 `b` 的父集合,因为 `a` 包含了 `b` 中所有的元素,相反的,集合 `b` 是集合 `a` 的子集合,因为属于 `b` 的元素也被 `a` 包含。集合 `b` 和集合 `c` 彼此不关联,因为它们之间没有共同的元素。 下面的插图描述了三个集合 `a``b``c`,以及通过重叠区域表述集合间共享的元素。集合 `a` 是集合 `b` 的父集合,因为 `a` 包含了 `b` 中所有的元素,相反的,集合 `b` 是集合 `a` 的子集合,因为属于 `b` 的元素也被 `a` 包含。集合 `b` 和集合 `c` 彼此不关联,因为它们之间没有共同的元素。
![](https://docs.swift.org/swift-book/_images/setEulerDiagram_2x.png) ![](https://docs.swift.org/swift-book/_images/setEulerDiagram_2x.png)

View File

@ -525,11 +525,10 @@ case (let distance, 0), (0, let distance):
default: default:
print("Not on an axis") print("Not on an axis")
} }
// 输出 "On an axis, 9 from the origin" // 输出 "On an axis, 9 from the origin"
``` ```
上面的 case 有两个模式:`(let distance, 0)` 匹配了在 x 轴上的值,`(0, let distance)` 匹配了在 y 轴上的值。两个模式都绑定了 `distance`,并且 `distance` 在两种模式下,都是整型——这意味着分支体内的代码,只要 case 匹配,都可以获取到 `distance` 上面的 case 有两个模式:`(let distance, 0)` 匹配了在 x 轴上的值,`(0, let distance)` 匹配了在 y 轴上的值。两个模式都绑定了 `distance`,并且 `distance` 在两种模式下,都是整型——这意味着分支体内的代码,只要 case 匹配,都可以获取到 `distance`
<a name="control_transfer_statements"></a> <a name="control_transfer_statements"></a>
## 控制转移语句 ## 控制转移语句
@ -750,7 +749,7 @@ greet(["name": "Jane", "location": "Cupertino"])
如果 `guard` 语句的条件被满足,则继续执行 `guard` 语句大括号后的代码。将变量或者常量的可选绑定作为 `guard` 语句的条件,都可以保护 `guard` 语句后面的代码。 如果 `guard` 语句的条件被满足,则继续执行 `guard` 语句大括号后的代码。将变量或者常量的可选绑定作为 `guard` 语句的条件,都可以保护 `guard` 语句后面的代码。
如果条件不被满足,在 `else` 分支上的代码就会被执行。这个分支必须转移控制以退出 `guard` 语句出现的代码段。它可以用控制转移语句如 `return`,`break`,`continue` 或者 `throw` 做这件事,或者调用一个不返回的方法或函数,例如 `fatalError()` 如果条件不被满足,在 `else` 分支上的代码就会被执行。这个分支必须转移控制以退出 `guard` 语句出现的代码段。它可以用控制转移语句如 `return``break``continue` 或者 `throw` 做这件事,或者调用一个不返回的方法或函数,例如 `fatalError()`
相比于可以实现同样功能的 `if` 语句,按需使用 `guard` 语句会提升我们代码的可读性。它可以使你的代码连贯的被执行而不需要将它包在 `else` 块中,它可以使你在紧邻条件判断的地方,处理违规的情况。 相比于可以实现同样功能的 `if` 语句,按需使用 `guard` 语句会提升我们代码的可读性。它可以使你的代码连贯的被执行而不需要将它包在 `else` 块中,它可以使你在紧邻条件判断的地方,处理违规的情况。