3.1 关于语言参考

原文链接: https://docs.swift.org/latest/documentation/the-swift-programming-language/aboutthelanguagereference/

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 }