3.1 标识符和关键字

任何一种计算机语言都离不开标识符和关键字,下面我们将详细介绍Swift标识符和关键字。

3.1.1 标识符

标识符就是给变量、常量、方法、函数、枚举、结构体、类、协议等指定的名字。构成标识符的字母均有一定的规范,Swift语言中标识符的命名规则如下:

  • 区分大小写,Mynamemyname是两个不同的标识符;

  • 标识符首字符可以以下划线(_)或者字母开始,但不能是数字;

  • 标识符中其他字符可以是下划线(_)、字母或数字。

例如,identifieruserNameUser_Name_sys_val、身高等为合法的标识符,而2mailroom#class为非法的标识符。其中,使用中文“身高”命名的变量是合法的。

注意 Swift中的字母采用的是Unicode编码1。Unicode叫做统一编码制,它包含了亚洲文字编码,如中文、日文、韩文等字符,甚至是我们在聊天工具中使用的表情符号,如{%}等,这些符号事实上也是Unicode,而非图片。这些符号在Swift中都可以使用。

1Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1 114 112个字符,或者说有1 114 112个码位。——百度百科http://baike.baidu.com/view/2602518.htm

如果一定要使用关键字作为标识符,可以在关键字前后添加重音符号(`),例如:

{%}

其中class是关键字,事实上重音符号(</code>)不是标识符的一部分,它也可以用于其他标识符,如<code>π</code>和<code>π`是等价的。因此使用关键字作为标识符是一种很不好的编程习惯。

3.1.2 关键字

关键字是类似于标识符的保留字符序列,除非用重音符号(`)将其括起来,否则不能用作标识符。关键字是对编译器具有特殊意义的预定义保留标识符。常见的关键字有以下4种。

  • 与声明有关的关键字:classdeinitenumextensionfuncimportinitletprotocolstaticstructsubscripttypealiasvar

  • 与语句有关的关键字:breakcasecontinuedefaultdoelsefallthroughifinforreturnswitchwherewhile

  • 表达式和类型关键字:asdynamicTypeisnewsuperselfSelfType__COLUMN____FILE____FUNCTION____LINE__

  • 在特定上下文中使用的关键字:associativitydidSetgetinfixinoutleftmutatingnonenonmutatingoperatoroverridepostfixprecedenceprefixrightsetunownedunowned(safe)unowned(unsafe)weakwillSet

对于上述关键字,目前我们没有必要全部知道它们的含义,但是要记住:在Swift中,关键字是区分大小写的,因此classClass是不同的,当然Class不是Swift的关键字。