@@ -1533,24 +1533,24 @@ s.$x.wrapper // WrapperWithProjection value
1533
1533
### resultBuilder
1534
1534
1535
1535
将此特性应用于类、结构体或枚举,
1536
- 以将该类型用作结果构建器 。
1537
- * 结果构建器 * 是一种逐步构建嵌套数据结构的类型。
1538
- 您可以使用结果构建器来实现
1536
+ 以将该类型用作结果构造器 。
1537
+ * 结果构造器 * 是一种逐步构建嵌套数据结构的类型。
1538
+ 您可以使用结果构造器来实现
1539
1539
一种用于以自然、声明式方式
1540
1540
创建嵌套数据结构的领域特定语言(DSL)。
1541
1541
有关如何使用 resultBuilder 属性的示例,
1542
1542
见 < doc:AdvancedOperators#Result-Builders > 。
1543
1543
1544
1544
#### 结果构建方法
1545
1545
1546
- 结果构建器实现了以下描述的静态方法 。
1547
- 由于结果构建器的所有功能都是通过静态方法暴露的 ,
1546
+ 结果构造器实现了以下描述的静态方法 。
1547
+ 由于结果构造器的所有功能都是通过静态方法暴露的 ,
1548
1548
因此您永远不需要初始化该类型的实例。
1549
- 结果构建器必须实现 ` buildBlock(_:) ` 方法,
1549
+ 结果构造器必须实现 ` buildBlock(_:) ` 方法,
1550
1550
或者同时实现 ` buildPartialBlock(first:) `
1551
1551
和 ` buildPartialBlock(accumulated:next:) ` 方法。
1552
1552
其他方法(这些方法在 DSL 中启用额外功能)是可选的。
1553
- 结果构建器类型的声明实际上不必包含任何协议一致性 。
1553
+ 结果构造器类型的声明实际上不必包含任何协议一致性 。
1554
1554
1555
1555
The description of the static methods uses three types as placeholders.
1556
1556
The type ` Expression ` is a placeholder
@@ -1567,7 +1567,7 @@ they default to being the same as `Component`.
1567
1567
` Expression ` 是构建器输入类型的占位符,
1568
1568
` Component ` 是部分结果类型的占位符,
1569
1569
而 ` FinalResult ` 是构建器生成的结果类型的占位符。
1570
- 你需要用结果构建器实际使用的类型替换这些占位符 。
1570
+ 你需要用结果构造器实际使用的类型替换这些占位符 。
1571
1571
如果你的结果构建方法没有为 ` Expression `
1572
1572
或 ` FinalResult ` 指定类型,
1573
1573
那么它们默认与 ` Component ` 类型相同。
@@ -1591,7 +1591,7 @@ they default to being the same as `Component`.
1591
1591
与 ` buildBlock(_:) ` 相比,
1592
1592
这种方法减少了处理不同数量参数的泛型重载的需求。
1593
1593
1594
- 结果构建器可以实现上述列出的所有三种块构建方法 ;
1594
+ 结果构造器可以实现上述列出的所有三种块构建方法 ;
1595
1595
在这种情况下,可用性决定调用哪个方法。
1596
1596
默认情况下,Swift 调用 ` buildPartialBlock(first:) `
1597
1597
和 ` buildPartialBlock(accumulated:next:) ` 方法。
@@ -1630,15 +1630,15 @@ they default to being the same as `Component`.
1630
1630
- ` static func buildFinalResult(_ component: Component) -> FinalResult ` :
1631
1631
从部分结果构建最终结果。
1632
1632
您可以将此方法实现为使用不同类型的部分
1633
- 和最终结果的结果构建器的一部分 ,
1633
+ 和最终结果的结果构造器的一部分 ,
1634
1634
或者在返回结果之前对结果进行其他后处理。
1635
1635
1636
1636
- ` static func buildLimitedAvailability(_ component: Component) -> Component ` :
1637
1637
构建一个擦除类型信息的部分结果。
1638
1638
您可以实现此方法,
1639
1639
以防止类型信息在执行可用性检查的编译器控制语句之外传播。
1640
1640
1641
- 例如,下面的代码定义了一个简单的结果构建器 ,
1641
+ 例如,下面的代码定义了一个简单的结果构造器 ,
1642
1642
用于构建一个整数数组。
1643
1643
此代码将 ` Component ` 和 ` Expression ` 定义为类型别名,
1644
1644
以便更容易将下面的示例与上面的函数列表进行匹配。
@@ -1707,10 +1707,10 @@ struct ArrayBuilder {
1707
1707
#### 结果转换
1708
1708
1709
1709
以下语法转换递归地应用于
1710
- 将使用结果构建器语法的代码
1711
- 转换为调用结果构建器类型的静态方法的代码 :
1710
+ 将使用结果构造器语法的代码
1711
+ 转换为调用结果构造器类型的静态方法的代码 :
1712
1712
1713
- - 如果结果构建器有一个 ` buildExpression(_:) ` 方法,
1713
+ - 如果结果构造器有一个 ` buildExpression(_:) ` 方法,
1714
1714
则每个表达式都变成对该方法的调用。
1715
1715
这个转换总是首先进行。
1716
1716
例如,以下声明是等价的:
@@ -1959,7 +1959,7 @@ struct ArrayBuilder {
1959
1959
>> assert(builderOptional == manualOptional)
1960
1960
```
1961
1961
-->
1962
- - 如果结果构建器实现了 ` buildPartialBlock(first:) `
1962
+ - 如果结果构造器实现了 ` buildPartialBlock(first:) `
1963
1963
和 ` buildPartialBlock(accumulated:next:) ` 方法,
1964
1964
则代码块或 ` do ` 语句将变成对这些方法的调用。
1965
1965
块内的第一条语句被转换为 ` buildPartialBlock(first:) ` 方法的一个参数,
@@ -2116,7 +2116,7 @@ struct ArrayBuilder {
2116
2116
>> assert(builderArray == manualArray)
2117
2117
```
2118
2118
-->
2119
- - 如果结果构建器有一个 ` buildFinalResult(_:) ` 方法,
2119
+ - 如果结果构造器有一个 ` buildFinalResult(_:) ` 方法,
2120
2120
则最终结果变为对该方法的调用。
2121
2121
此转换始终是最后进行的
2122
2122
@@ -2228,10 +2228,10 @@ struct ArrayBuilder {
2228
2228
-->
2229
2229
2230
2230
尽管转换行为是通过临时变量来描述的,
2231
- 但使用结果构建器实际上并不会
2231
+ 但使用结果构造器实际上并不会
2232
2232
创建任何在代码其他部分可见的新声明。
2233
2233
2234
- 您不能在结果构建器转换的代码中
2234
+ 您不能在结果构造器转换的代码中
2235
2235
使用 ` break ` 、` continue ` 、` defer ` 、` guard `
2236
2236
或 ` return ` 语句、` while ` 语句或 ` do-catch ` 语句。
2237
2237
@@ -2269,19 +2269,19 @@ struct ArrayBuilder {
2269
2269
```
2270
2270
-->
2271
2271
2272
- #### 自定义结果构建器特性
2272
+ #### 自定义结果构造器特性
2273
2273
2274
- 创建结果构建器类型会创建一个同名的自定义特性 。您可以在以下位置应用该特性:
2274
+ 创建结果构造器类型会创建一个同名的自定义特性 。您可以在以下位置应用该特性:
2275
2275
2276
2276
- 在函数声明中,
2277
- 结果构建器构建函数的主体 。
2277
+ 结果构造器构建函数的主体 。
2278
2278
- 在包含 getter 的变量或下标声明中,
2279
- 结果构建器构建 getter 的主体
2279
+ 结果构造器构建 getter 的主体
2280
2280
- 在函数声明中的一个参数上,
2281
- 结果构建器构建一个作为相应参数传递的闭包的主体 。
2281
+ 结果构造器构建一个作为相应参数传递的闭包的主体 。
2282
2282
2283
- 应用结果构建器特性不会影响 ABI 兼容性。
2284
- 将结果构建器特性应用于参数使该特性成为函数接口的一部分 ,
2283
+ 应用结果构造器特性不会影响 ABI 兼容性。
2284
+ 将结果构造器特性应用于参数使该特性成为函数接口的一部分 ,
2285
2285
这可能会影响源兼容性。
2286
2286
2287
2287
### requires_stored_property_inits
0 commit comments