ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# Swift 字面量 所谓字面量,就是指像特定的数字,字符串或者是布尔值这样,能够直接了当地指出自己的类型并为变量进行赋值的值。比如在下面: ``` let aNumber = 3 //整型字面量 let aString = "Hello" //字符串字面量 let aBool = true //布尔值字面量 ``` ## 整型字面量 整型字面量可以是一个十进制,二进制,八进制或十六进制常量。 二进制前缀为 0b,八进制前缀为 0o,十六进制前缀为 0x,十进制没有前缀: 以下为一些整型字面量的实例: ``` let decimalInteger = 17 // 17 - 十进制表示 let binaryInteger = 0b10001 // 17 - 二进制表示 let octalInteger = 0o21 // 17 - 八进制表示 let hexadecimalInteger = 0x11 // 17 - 十六进制表示 ``` ## 浮点型字面量 浮点型字面量有整数部分,小数点,小数部分及指数部分。 除非特别指定,浮点型字面量的默认推导类型为 Swift 标准库类型中的 Double,表示64位浮点数。 浮点型字面量默认用十进制表示(无前缀),也可以用十六进制表示(加前缀 0x)。 > 十进制浮点型字面量由十进制数字串后跟小数部分或指数部分(或两者皆有)组成。十进制小数部分由小数点 . 后跟十进制数字串组成。指数部分由大写或小写字母 e 为前缀后跟十进制数字串组成,这串数字表示 e 之前的数量乘以 10 的几次方。例如:1.25e2 表示 1.25 ⨉ 10^2,也就是 125.0;同样,1.25e-2 表示 1.25 ⨉ 10^-2,也就是 0.0125。 > 十六进制浮点型字面量由前缀 0x 后跟可选的十六进制小数部分以及十六进制指数部分组成。十六进制小数部分由小数点后跟十六进制数字串组成。指数部分由大写或小写字母 p 为前缀后跟十进制数字串组成,这串数字表示 p 之前的数量乘以 2 的几次方。例如:0xFp2 表示 15 ⨉ 2^2,也就是 60;同样,0xFp-2 表示 15 ⨉ 2^-2,也就是 3.75。 > 负的浮点型字面量由一元运算符减号 - 和浮点型字面量组成,例如 -42.5。 浮点型字面量允许使用下划线 _ 来增强数字的可读性,下划线会被系统忽略,因此不会影响字面量的值。同样地,也可以在数字前加 0,并不会影响字面量的值。 以下为一些浮点型字面量的实例: ``` let decimalDouble = 12.1875 //十进制浮点型字面量 let exponentDouble = 1.21875e1 //十进制浮点型字面量 let hexadecimalDouble = 0xC.3p0 //十六进制浮点型字面量 ``` ## 字符串型字面量 字符串型字面量由被包在双引号中的一串字符组成,形式如下: ``` "characters" ``` 字符串型字面量中不能包含未转义的双引号 (")、未转义的反斜线(\)、回车符或换行符。 | 转移字符 | 含义 | | --- | --- | | \0 | 空字符 | | \\\\ | 反斜线 \\ | | \b | 退格(BS) ,将当前位置移到前一列 | | \f | 换页(FF),将当前位置移到下页开头 | | \n | 换行符 | | \r | 回车符 | | \t | 水平制表符 | | \v | 垂直制表符 | | \' | 单引号 | | \" | 双引号 | | \000 | 1到3位八进制数所代表的任意字符 | | \xhh... | 1到2位十六进制所代表的任意字符 | 以下为字符串字面量的简单实例: ``` import Cocoa let stringL = "Hello\tWorld\n\n菜鸟教程官网:\'http://www.runoob.com\'" print(stringL) ``` 以上程序执行结果为: ``` Hello World 菜鸟教程官网:'http://www.runoob.com' ``` ## 布尔型字面量 布尔型字面量的默认类型是 Bool。 布尔值字面量有三个值,它们是 Swift 的保留关键字: * **true** 表示真。 * **false** 表示假。 * **nil** 表示没有值。