swift 2.0 chapter3 01 and 06

This commit is contained in:
KYawn
2015-06-30 18:12:21 +08:00
parent 8788ae6b16
commit 19f3bd8ca1
2 changed files with 135 additions and 72 deletions

View File

@@ -1,5 +1,5 @@
> 翻译:[dabing1022](https://github.com/dabing1022)
> 校对:[numbbbbb](https://github.com/numbbbbb)
> 校对:[numbbbbb](https://github.com/numbbbbb), [KYawn](https://github.com/KYawn)
# 关于语言附注
@@ -11,28 +11,32 @@
本书的这一节描述了Swift编程语言的形式语法。这里描述的语法是为了帮助您更详细的了解该语言而不是让您直接实现一个解析器或编译器。
Swift语言相对小点这是由于在Swift代码中几乎无处不在的许多常见的的类型函数以及运算符都由Swift标准库来定义。虽然这些类型函数和运算符不是Swift语言本身的一部分但是它们被广泛用于这本书的讨论和代码范例。
Swift语言相对小一点这是由于在Swift代码中几乎所有常见的类型、函数以及运算符都已经在Swift标准库中定义了。虽然这些类型、函数和运算符并不是Swift语言自身的一部分但是它们被广泛应用于本书的讨论和代码范例中。
<a name="how_to_read_the_grammar"></a>
## 如何阅读语法
用来描述Swift编程语言形式语法的记遵循下面几个约定:
用来描述Swift编程语言形式语法的记遵循下面几个约定:
- 箭头(→)用来标记语法产式,可以理解为“可以包含”。
- 句法范畴由*斜体*文字表示,并出现在一个语法产式规则两侧。
- 义词和标点符号由粗体固定宽度的文本显示和只出现在一个语法产式规则的右
- 箭头(→)用来标记语法产式,可以理解为“可以包含”。
- *斜体*文字用来表示句法分类,并出现在一个语法产式规则两侧。
- 义词和标点符号由粗体固定宽度的文本标记,而且只出现在一个语法产式规则的右
- 选择性的语法产式由竖线(|)分隔。当可选用的语法产式太多时,为了阅读方便,它们将被拆分为多行语法产式规则。
- 少数情况下,常规字体文字用来描述语法产式规则的右边。
- 可选的句法范畴和文字用尾标`opt`来标记。
- 少数情况下,常规字体文字用来描述语法产式规则的右边。
- 可选的句法分类和文字用尾标`opt`来标记。
举个例子getter-setter的语法块的定义如下
> GRAMMAR OF A GETTER-SETTER BLOCK
> *getter-setter-block* → {­ [*getter-clause*](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/swift/grammar/getter-clause) [­*setter-clause*­](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/swift/grammar/setter-clause)*opt* ­}­ | {­ [*setter-clause*](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/swift/grammar/setter-clause) [­*getter-clause*](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/swift/grammar/getter-clause)­}­
这个定义表明一个getter-setter方法块可以由一个getter子句后跟一个可选的setter子句构成用大括号括起来或者由一个setter子句后跟一个getter子句构成用大括号括起来。上述的文法产等价于下面的两个产生,明确阐明如何二中择一
这个定义表明一个getter-setter方法块可以由一个getter子句后跟一个可选的setter子句构成然后用大括号括起来或者由一个setter子句后跟一个getter子句构成然后用大括号括起来。下面的两个语法产等价于上述的语法产式,并明确指出了如何取舍
> GRAMMAR OF A GETTER-SETTER BLOCK
> getter-setter-block → {­ [*getter-clause*](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/swift/grammar/getter-clause) [*­setter-clause*­](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/swift/grammar/setter-clause)*opt* ­}­­
> getter-setter-block → {­ [*setter-clause*](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/swift/grammar/setter-clause) [*­getter-clause*](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html#//apple_ref/swift/grammar/getter-clause)­}­