关于语言参考
本书的这一部分描述了Swift编程语言的形式语法。这里描述的语法旨在帮助您更详细地理解语言,而不是让您直接实现解析器或编译器。
Swift语言相对较小,因为在Swift代码中几乎无处不在的常见类型,函数和运算符实际上是在Swift标准库中定义的。虽然这些类型,函数和操作符不是Swift语言本身的一部分,但它们广泛用于本书这一部分的讨论和代码示例。
如何阅读语法
用于描述Swift编程语言形式语法的符号遵循以下几个约定:
箭头(→)用于标记语法产物,可以理解为“可以由...组成”。
句法类别用斜体文本表示,并出现在语法生成规则的两侧。
字面单词和标点符号用粗体文字表示,只出现在语法生成规则的右侧。
另一种语法产品用垂直条(|)分隔。当替代性产品太长时间难以阅读时,它们被分解成多条语法生成新规则。
在少数情况下,常规字体文本用于描述文法生产规则的右侧。
可选的语法类别和文字用尾部下标标记。
作为一个例子,getter-setter块的语法定义如下:
GRAMMAR OF A GETTER-SETTER BLOCK
getter-setter-block → {-getter-clause-setter-clause-opt-}-{-setter-clause-getter-clause-}-
这个定义表明一个getter-setter块可以由一个getter子句组成,后面跟着一个可选的setter子句,用大括号括起来,或者是一个setter子句,后面跟着一个用大括号括起来的getter子句。 上面的语法生产相当于以下两个生产,其中明确阐述了替代方法:
GRAMMAR OF A GETTER-SETTER BLOCK
getter-setter-block → {-getter-clause-setter-clause-opt-}-
getter-setter-block → {-setter-clause-getter-clause-}-