《swift2.0 官方教程中文版》 第3章-01关于语言参考&词法结构
来源:互联网 发布:网络电影 罪 编辑:程序博客网 时间:2024/04/29 10:06
import Foundation
/*如何阅读语法***********************************************/
//? 箭头(→)用来标记语法产式,可以理解为“可以包含”。
//? 斜体文字用来表示句法分类,并出现在一个语法产式规则两侧。
//? 义词和标点符号由粗体固定宽度的文本标记,而且只出现在一个语法产式规则的右侧。
//? 选择性的语法产式由竖线(|)分隔。当可选用的语法产式太多时,为了阅读方便,它们将被拆分为多行语法产式规则。
//? 少数情况下,常规字体文字用来描述语法产式规则的右边。
//? 可选的句法分类和文字用尾标 opt来标记。
/*词法结构*/
/*空白与注释***********************************************/
//空白(whitespace)有两个用途:分隔源文件中的标记和帮助区分运算符属于前缀还是后缀,在其他情况下则会被忽略
//注释(comments)被编译器当作空白处理。
/*标识符***********************************************/
/*关键字和符号***********************************************/
//下面这些被保留的关键字(keywords)不允许用作标识符,除非被反引号转义
//? 用在声明中的关键字: class、deinit、enum、extension、func、import、init、let、protocol、static、struct、subscript、typealias、var
//? 用在语句中的关键字: break、case、continue、default、do、else、fallthrough、if、in、for、return、switch、where、while
//? 用在表达式和类型中的关键字: as、dynamicType、is、new、super、self、Self、Type、__COLUMN__、__FILE__、__FUNCTION__、__LINE__
//? 用在模式中的关键字: _
//? 特定上下文中被保留的关键字: associativity、didSet、get、infix、inout、left、mutating、none、non mutating、operator、override、postfix、precedence、prefix、right、set、unowned、unowned(safe)、unowned(unsafe)、weak、willSet,这些关键字在特定上下文之外可以被用于标识符。
//以下标记被当作保留符号,不能用于自定义操作符: (、 ) 、 {、 } 、 [、 ] 、 .、 , 、 :、 ; 、 =、 @ 、 #、 &(作为前缀操作符)、 -> 、``、 ?和 !(作为后缀操作符)`。
/*字面量***********************************************/
//? 空字符(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 )。
//鉴于这些规则,运算符前的字符 (、[和 { ;运算符后的字符 )、]和 } 以及字符 ,、;和 : 都被视为空白。
- 《swift2.0 官方教程中文版》 第3章-01关于语言参考&词法结构
- 《swift2.0 官方教程中文版》 第3章-02类型
- 《swift2.0 官方教程中文版》 第3章-03表达式
- 《swift2.0 官方教程中文版》 第3章-05模式
- 《swift2.0 官方教程中文版》 第2章-09类和结构体
- 《swift2.0 官方教程中文版》 第1章
- 《swift2.0 官方教程中文版》 第2章-06函数
- 《swift2.0 官方教程中文版》 第2章-08枚举
- 《swift2.0 官方教程中文版》 第2章-10属性
- 《swift2.0 官方教程中文版》 第2章-11方法
- 《swift2.0 官方教程中文版》 第2章-13继承
- 《swift2.0 官方教程中文版》 第2章-21扩展
- 《swift2.0 官方教程中文版》 第2章-22协议
- 《swift2.0 官方教程中文版》 第2章-23泛型
- 《swift2.0 官方教程中文版》 第2章-01基础部分
- 《swift2.0 官方教程中文版》 第2章-02基本运算符
- 《swift2.0 官方教程中文版》 第2章-03字符串和字符
- 《swift2.0 官方教程中文版》 第2章-04集合类型
- JVM--性能分析
- nodejs+mongoose简单关联+增删改查
- Matlab图像处理:误拒率、误识率意义,计算等错误率的Matlab源码
- fiddler的使用
- x2检验
- 《swift2.0 官方教程中文版》 第3章-01关于语言参考&词法结构
- Java 实验:数据结构
- 【LEETCODE】64-Minimum Path Sum
- Guava学习笔记:Google Guava 类库简介
- 归并排序
- org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 60
- Linux多线程——使用信号量同步线程
- unity3D 使用rigidbody.AddForce(movement)
- Topological Sort