Skip to content

Commit 9da5252

Browse files
authored
修改格式, 修复语病, 优化翻译 (#1228)
* 修复格式错误, 文本缩进与内容斜体 * 修改语病与错别字 * 优化翻译
1 parent 40cb121 commit 9da5252

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

source/02_language_guide/15_Deinitialization.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ deinit {
1616

1717
析构器是在实例释放发生前被自动调用的。你不能主动调用析构器。子类继承了父类的析构器,并且在子类析构器实现的最后,父类的析构器会被自动调用。即使子类没有提供自己的析构器,父类的析构器也同样会被调用。
1818

19-
因为直到实例的析构器被调用后,实例才会被释放,所以析构器可以访问实例的所有属性,并且可以根据那些属性可以修改它的行为(比如查找一个需要被关闭的文件)。
19+
因为直到实例的析构器被调用后,实例才会被释放,所以析构器可以访问实例的所有属性,并且可以根据那些属性修改它的行为(比如查找一个需要被关闭的文件)。
2020

2121
## 析构器实践 {#deinitializers-in-action}
2222

source/02_language_guide/20_Extensions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ extension SomeType: SomeProtocol, AnotherProtocol {
3737

3838
这种遵循协议的方式在 [在扩展里添加协议遵循](./21_Protocols.md#adding-protocol-conformance-with-an-extension) 中有描述。
3939

40-
扩展可以使用在现有范型类型上,就像 [泛型扩展](./22_Generics.md#extending-a-generic-type) 中描述的一样。你还可以使用扩展给泛型类型有条件的添加功能,就像 [具有泛型 Where 子句的扩展](./22_Generics.md#extensions-with-a-generic-where-clause) 中描述的一样。
40+
扩展可以使用在现有泛型类型上,就像 [泛型扩展](./22_Generics.md#extending-a-generic-type) 中描述的一样。你还可以使用扩展给泛型类型有条件的添加功能,就像 [具有泛型 Where 子句的扩展](./22_Generics.md#extensions-with-a-generic-where-clause) 中描述的一样。
4141

4242
> 注意
4343
>
@@ -210,7 +210,7 @@ extension Int {
210210
// 返回 7
211211
```
212212

213-
如果操作的 `Int` 值没有足够的位数满足所请求的下标,那么下标的现实将返回 `0`将好像在数字的左边补上了 0:
213+
如果操作的 `Int` 值没有足够的位数满足所请求的下标,那么下标的实现将返回 `0`就好像在数字的左边补上了 0:
214214

215215
```swift
216216
746381295[9]

source/02_language_guide/21_Protocols.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ var ncc1701 = Starship(name: "Enterprise", prefix: "USS")
105105

106106
```swift
107107
protocol SomeProtocol {
108-
static func someTypeMethod()
108+
static func someTypeMethod()
109109
}
110110
```
111111

@@ -675,7 +675,7 @@ wishHappyBirthday(to: birthdayPerson)
675675

676676
`Named` 协议包含 `String` 类型的 `name` 属性。`Aged` 协议包含 `Int` 类型的 `age` 属性。`Person` 结构体采纳了这两个协议。
677677

678-
`wishHappyBirthday(to:)` 函数的参数 `celebrator` 的类型为 `Named & Aged`, 这意味着“任何同时遵循 Named 和 Aged 的协议”。它不关心参数的具体类型,只要参数遵循这两个协议即可。
678+
`wishHappyBirthday(to:)` 函数的参数 `celebrator` 的类型为 `Named & Aged`, 这意味着“任何同时遵循 Named 和 Aged 协议的类型”。它不关心参数的具体类型,只要参数遵循这两个协议即可。
679679

680680
上面的例子创建了一个名为 `birthdayPerson``Person` 的实例,作为参数传递给了 `wishHappyBirthday(to:)` 函数。因为 `Person` 同时遵循这两个协议,所以这个参数合法,函数将打印生日问候语。
681681

@@ -857,7 +857,7 @@ for _ in 1...4 {
857857
// 12
858858
```
859859

860-
上述代码新建了一个 `Counter` 实例,并将它的数据源设置为一个 `ThreeSource` 的实例,然后调用 `increment()` 方法 `4` 次。按照预期预期一样,每次调用都会将 `count` 的值增加 `3`.
860+
上述代码新建了一个 `Counter` 实例,并将它的数据源设置为一个 `ThreeSource` 的实例,然后调用 `increment()` 方法 `4` 次。正如预期一样,每次调用都会将 `count` 的值增加 `3`.
861861

862862
下面是一个更为复杂的数据源 `TowardsZeroSource`,它将使得最后的值变为 `0`
863863

source/02_language_guide/28_Concurrency.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ for try await line in handle.bytes.lines {
114114
}
115115
```
116116

117-
与普通的 `for-in` 循环相比,上面的列子在 `for` 之后添加了 `await` 关键字。就像在调用异步函数或方法时一样,`await` 表明代码中有一个可能的悬点。`for-await-in` 循环会在每次循环开始的时候因为有可能需要等待下一个元素而挂起当前代码的执行。
117+
与普通的 `for-in` 循环相比,上面的例子在 `for` 之后添加了 `await` 关键字。就像在调用异步函数或方法时一样,`await` 表明代码中有一个可能的悬点。`for-await-in` 循环会在每次循环开始的时候因为有可能需要等待下一个元素而挂起当前代码的执行。
118118

119119
想让自己创建的类型使用 `for-in` 循环需要遵循 [Sequence](https://developer.apple.com/documentation/swift/sequence) 协议,这里也同理,如果想让自己创建的类型使用 `for-await-in` 循环,就需要遵循 [AsyncSequence](https://developer.apple.com/documentation/swift/asyncsequence) 协议。
120120

@@ -157,7 +157,7 @@ show(photos)
157157

158158
## 任务和任务组 {#Tasks-and-Task-Groups}
159159

160-
*任务(task)*是一项工作,可以作为程序的一部分并发执行。所有的异步代码都属于某个任务。上一部分介绍的 `async-let` 语法就会产生一个子任务。你也可以创建一个任务组并且给其中添加子任务,这可以让你对优先级和任务取消有了更多的掌控力,并且可以控制任务的数量。
160+
*任务(task)* 是一项工作,可以作为程序的一部分并发执行。所有的异步代码都属于某个任务。上一部分介绍的 `async-let` 语法就会产生一个子任务。你也可以创建一个任务组并且给其中添加子任务,这可以让你对优先级和任务取消有了更多的掌控力,并且可以控制任务的数量。
161161

162162
任务是按层级结构排列的。同一个任务组中的任务拥有相同的父任务,并且每个任务都可以添加子任务。由于任务和任务组之间明确的关系,这种方式又被称为*结构化并发(structured concurrency)*。虽然你需要确保代码的正确性,但任务间明确的父子关系让 Swift 能替你处理一些如扩散取消(propagating cancellation)之类的行为,并且能让 Swift 在编译阶段发现一些错误。
163163

0 commit comments

Comments
 (0)