3.1 关于语言参考
2 分钟阅读
3.1 关于语言参考
了解正式语法所使用的记法。
本书这一部分描述 Swift 编程语言的正式语法。这里描述的语法旨在帮助你更深入地理解这门语言,而不是让你直接去实现解析器或编译器。
Swift 语言相对小巧,因为 Swift 代码中随处可见的许多常见类型、函数和运算符其实都定义在 Swift 标准库中。虽然这些类型、函数和运算符并不属于 Swift 语言本身,但本书这一部分的讨论和代码示例中大量使用了它们。
如何阅读语法
描述 Swift 编程语言正式语法所用的记法遵循几条约定:
- 箭头(→)用来标记语法产生式,可以读作"可以由……构成"。
- 语法范畴用斜体文本表示,出现在语法产生式规则的左右两侧。
- 字面单词和标点用**
粗体等宽**文本表示,只出现在语法产生式规则的右侧。 - 备选的语法产生式之间用竖线(|)分隔。当备选产生式太长、不易阅读时,它们会被拆成多条语法产生式规则,各占一行。
- 在少数情况下,右侧会使用正体文本描述语法产生式规则。
- 可选的语法范畴和字面量用结尾的问号 ? 标记。
举例来说,取值器-设值器块的语法定义如下:
Grammar of a getter-setter block:
getter-setter-block →
{getter-clause setter-clause?}|{setter-clause getter-clause}
这个定义表示:取值器-设值器块可以由一个取值器子句后跟一个可选的设值器子句构成,并括在花括号中,或者由一个设值器子句后跟一个取值器子句构成,并括在花括号中。上面的语法产生式等价于下面两条产生式,这里把两种选择显式写开了:
Grammar of a getter-setter block:
getter-setter-block →
{getter-clause setter-clause?}
getter-setter-block →{setter-clause getter-clause}