发布于 2015-06-14 02:00:17 | 166 次阅读 | 评论: 0 | 来源: 网络整理
字面值表示整型、浮点型数字或文本类型的值,举例如下:
42 // 整型字面量
3.14159 // 浮点型字面量
"Hello, world!" // 文本型字面量
字面量语法
字面量 → 整型字面量 | 浮点数字面量 | 字符串字面量
整型字面量(integer literals)表示未指定精度整型数的值。整型字面量默认用十进制表示,可以加前缀来指定其他的进制,二进制字面量加 0b
,八进制字面量加 0o
,十六进制字面量加 0x
。
十进制字面量包含数字 0
至 9
。二进制字面量只包含 0
或 1
,八进制字面量包含数字 0
至 7
,十六进制字面量包含数字 0
至 9
以及字母 A
至 F
(大小写均可)。
负整数的字面量在数字前加减号 -
,比如 -42
。
允许使用下划线 _
来增加数字的可读性,下划线不会影响字面量的值。整型字面量也可以在数字前加 0
,同样不会影响字面量的值。
1000_000 // 等于 1000000
005 // 等于 5
除非特殊指定,整型字面量的默认类型为 Swift 标准库类型中的 Int
。Swift 标准库还定义了其他不同长度以及是否带符号的整数类型,请参考 整数类型。
整型字面量语法
整型字面量 → 二进制字面量
整型字面量 → 八进制字面量
整型字面量 → 十进制字面量
整型字面量 → 十六进制字面量
二进制字面量 → 0b 二进制数字 二进制字面量字符列表 可选
二进制数字 → 数值 0 到 1
二进制字面量字符 → 二进制数字 | _
二进制字面量字符列表 → 二进制字面量字符 二进制字面量字符列表 可选
八进制字面量 → 0o 八进字数字 八进制字符列表 可选
八进字数字 → 数值 0 到 7
八进制字符 → 八进字数字 | _
八进制字符列表 → 八进制字符 八进制字符列表 可选
十进制字面量 → 十进制数字 十进制字符列表 可选
十进制数字 → 数值 0 到 9
十进制数字列表 → 十进制数字 十进制数字列表 可选
十进制字符 → 十进制数字 | _
十进制字符列表 → 十进制字符 十进制字符列表 可选
十六进制字面量 → 0x 十六进制数字 十六进制字面量字符列表 可选
十六进制数字 → 数值 0 到 9, a through f, or A through F
十六进制字符 → 十六进制数字 | _
十六进制字面量字符列表 → 十六进制字符 十六进制字面量字符列表 可选
浮点型字面量(floating-point literals)表示未指定精度浮点数的值。
浮点型字面量默认用十进制表示(无前缀),也可以用十六进制表示(加前缀 0x
)。
十进制浮点型字面量(decimal floating-point literals)由十进制数字串后跟小数部分或指数部分(或两者皆有)组成。十进制小数部分由小数点 .
后跟十进制数字串组成。指数部分由大写或小写字母 e
后跟十进制数字串组成,这串数字表示 e
之前的数量乘以 10 的几次方。例如:1.25e2
表示 1.25 ⨉ 10^2
,也就是 125.0
;同样,1.25e-2
表示 1.25 ⨉ 10^-2
,也就是 0.0125
。
十六进制浮点型字面量(hexadecimal floating-point literals)由前缀 0x
后跟可选的十六进制小数部分以及十六进制指数部分组成。十六进制小数部分由小数点后跟十六进制数字串组成。指数部分由大写或小写字母p
后跟十进制数字串组成,这串数字表示 p
之前的数量乘以 2 的几次方。例如:0xFp2
表示15 ⨉ 2^2
,也就是 60
;同样,0xFp-2
表示 15 ⨉ 2^-2
,也就是 3.75
。
与整型字面量不同,负的浮点型字面量由一元运算符减号 -
和浮点型字面量组成,例如 -42.0
。这代表一个表达式,而不是一个浮点整型字面量。
允许使用下划线 _
来增强可读性,下划线不会影响字面量的值。浮点型字面量也可以在数字前加 0
,同样不会影响字面量的值。
10_000.56 // 等于 10000.56
005000.76 // 等于 5000.76
除非特殊指定,浮点型字面量的默认类型为 Swift 标准库类型中的 Double
,表示64位浮点数。Swift 标准库也定义 Float
类型,表示32位浮点数。
浮点型字面量语法
浮点数字面量 → 十进制字面量 十进制分数 可选 十进制指数 可选
浮点数字面量 → 十六进制字面量 十六进制分数 可选 十六进制指数
十进制分数 → . 十进制字面量
十进制指数 → 浮点数e 正负号 可选 十进制字面量
十六进制分数 → . 十六进制字面量 可选
十六进制指数 → 浮点数p 正负号 可选 十六进制字面量
浮点数e → e | E
浮点数p → p | P
正负号 → + | -
文本型字面量(string literal)由双引号中的字符串组成,形式如下:
"characters"
文本型字面量中不能包含未转义的双引号 "
、未转义的反斜线、回车符(carriage return)或换行符(line feed)。
可以在文本型字面量中使用的转义特殊符号如下:
�
\
t
n
r
"
'
字符也可以用以下方式表示:
x
后跟两位十六进制数字u
后跟四位十六进制数字U
后跟八位十六进制数字后跟的数字表示一个 Unicode 码点。
文本型字面量允许在反斜线小括号 ()
中插入表达式的值。插入表达式(interpolated expression)不能包含未转义的双引号 "
、反斜线 、回车符或者换行符。表达式值的类型必须在 String 类中有对应的初始化方法。
例如,以下所有文本型字面量的值相同:
"1 2 3"
"1 2 (3)"
"1 2 (1 + 2)"
var x = 3; "1 2 (x)"
文本型字面量的默认类型为 String
。组成字符串的字符类型为 Character
。更多有关 String
和Character
的信息请参照 字符串和字符。
字符型字面量语法
字符串字面量 → " 引用文本 "
引用文本 → 引用文本条目 引用文本 可选
引用文本条目 → 转义字符
引用文本条目 → ( 表达式 )
引用文本条目 → 除了", , U+000A, or U+000D的所有Unicode的字符
转义字符 → � | | t | n | r | " | '
转义字符 → x 十六进制数字 十六进制数字
转义字符 → u 十六进制数字 十六进制数字 十六进制数字 十六进制数字
转义字符 → U 十六进制数字 十六进制数字 十六进制数字 十六进制数字 十六进制数字 十六进制数字 十六进制数字 十六进制数字