《swift2.0 官方教程中文版》 第3章-01关于语言参考&词法结构


import Foundation


/*如何阅读语法***********************************************/

//? 箭头(→)用来标记语法产式,可以理解为可以包含

//? 斜体文字用来表示句法分类,并出现在一个语法产式规则两侧。

//? 义词和标点符号由粗体固定宽度的文本标记,而且只出现在一个语法产式规则的右侧。

//? 选择性的语法产式由竖线(|)分隔。当可选用的语法产式太多时,为了阅读方便,它们将被拆分为多行语法 产式规则。

//? 少数情况下,常规字体文字用来描述语法产式规则的右边。

//? 可选的句法分类和文字用尾标 opt 来标记。




/*词法结构*/

/*空白与注释***********************************************/

//空白(whitespace)有两个用途:分隔源文件中的标记和帮助区分运算符属于前缀还是后缀,在其他情况下则会被忽略

//注释(comments)被编译器当作空白处理。




/*标识符***********************************************/




/*关键字和符号***********************************************/

//下面这些被保留的关键字(keywords)不允许用作标识符,除非被反引号转义

//? 用在声明中的关键字: classdeinitenumextensionfuncimportinitletprotocolstaticstructsubscripttypealiasvar

//? 用在语句中的关键字: breakcasecontinuedefaultdoelsefallthroughifinforreturnswitchwherewhile

//? 用在表达式和类型中的关键字: asdynamicTypeisnewsuperselfSelfType__COLUMN____FILE____FUNCTION____LINE__

//? 用在模式中的关键字: _

//? 特定上下文中被保留的关键字: associativitydidSetgetinfixinoutleftmutatingnonenon mutatingoperatoroverridepostfixprecedenceprefixrightsetunownedunowned(safe)unowned(unsafe)weakwillSet,这些关键字在特定上下文之外可以被用于标识符。

//以下标记被当作保留符号,不能用于自定义操作符: ( ) { } [ ] . , : ; = @ # &(作为前缀操作符) -> `` ? !(作为后缀操作符)`




/*字面量***********************************************/

//? 空字符(Null Character) \0

//? 反斜线(Backslash) \\

//? 水平制表符(Horizontal Tab) \t

//? 换行符(Line Feed) \n

//? 回车符(Carriage Return) \r

//? 双引号(Double Quote) \"

//? 单引号(Single Quote) \'

//? Unicode标量 \u{n},n为一到八位的十六进制数字




/*运算符***********************************************/

//- + ! * % < > & | ^ ? 以及 ~,或者后面语法中规定的任一个 Unicode 字符开始。在第一个字符之后,允许使用组合型 Unicode 字符。也可以使用两个或者多个的点号来自定义运算符( ,.... )。虽然可以自定义包含问号 ? 的运算符,但是这个运算符不能只包含单独的一个问号。

//? 如果运算符两侧都有空白或两侧都无空白,将被看作二元运算符。例如: a+b a + b 中的运算符 + 看作二元运算符。

//? 如果运算符只有左侧空白,将被看作前缀一元运算符。例如 a ++b 中的 ++ 被看作前缀一元运算符。

//? 如果运算符只有右侧空白,将被看作后缀一元运算符。例如 a++ b 中的 ++ 被看作后缀一元运算符。

//? 如果运算符左侧没有空白并紧跟 .,将被看作后缀一元运算符。例如 a++.b 中的 ++ 被看作后缀一元运 算符(即上式被视为 a++ .b 而非 a ++ .b )

//鉴于这些规则,运算符前的字符 ([ { ;运算符后的字符 )] } 以及字符,; : 都被视为 空白。

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...