Swift 字面量

所謂字面量,就是指像特定的數(shù)字,字符串或者是布爾值這樣,能夠直接了當(dāng)?shù)刂赋鲎约旱念愋筒樽兞窟M行賦值的值。比如在下面:

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 - 十六進制表示

浮點型字面量

浮點型字面量有整數(shù)部分,小數(shù)點,小數(shù)部分及指數(shù)部分。

除非特別指定,浮點型字面量的默認(rèn)推導(dǎo)類型為 Swift 標(biāo)準(zhǔn)庫類型中的 Double,表示64位浮點數(shù)。

浮點型字面量默認(rèn)用十進制表示(無前綴),也可以用十六進制表示(加前綴 0x)。

十進制浮點型字面量由十進制數(shù)字串后跟小數(shù)部分或指數(shù)部分(或兩者皆有)組成。十進制小數(shù)部分由小數(shù)點 . 后跟十進制數(shù)字串組成。指數(shù)部分由大寫或小寫字母 e 為前綴后跟十進制數(shù)字串組成,這串?dāng)?shù)字表示 e 之前的數(shù)量乘以 10 的幾次方。例如:1.25e2 表示 1.25 ? 10^2,也就是 125.0;同樣,1.25e-2 表示 1.25 ? 10^-2,也就是 0.0125。

十六進制浮點型字面量由前綴 0x 后跟可選的十六進制小數(shù)部分以及十六進制指數(shù)部分組成。十六進制小數(shù)部分由小數(shù)點后跟十六進制數(shù)字串組成。指數(shù)部分由大寫或小寫字母 p 為前綴后跟十進制數(shù)字串組成,這串?dāng)?shù)字表示 p 之前的數(shù)量乘以 2 的幾次方。例如:0xFp2 表示 15 ? 2^2,也就是 60;同樣,0xFp-2 表示 15 ? 2^-2,也就是 3.75。

負(fù)的浮點型字面量由一元運算符減號 - 和浮點型字面量組成,例如 -42.5。

浮點型字面量允許使用下劃線 _ 來增強數(shù)字的可讀性,下劃線會被系統(tǒng)忽略,因此不會影響字面量的值。同樣地,也可以在數(shù)字前加 0,并不會影響字面量的值。

以下為一些浮點型字面量的實例:

let decimalDouble = 12.1875       //十進制浮點型字面量
let exponentDouble = 1.21875e1    //十進制浮點型字面量
let hexadecimalDouble = 0xC.3p0   //十六進制浮點型字面量

字符串型字面量

字符串型字面量由被包在雙引號中的一串字符組成,形式如下:

"characters"

字符串型字面量中不能包含未轉(zhuǎn)義的雙引號 (")、未轉(zhuǎn)義的反斜線(\)、回車符或換行符。

轉(zhuǎn)移字符 含義
\0 空字符
\\ 反斜線 \
\b 退格(BS) ,將當(dāng)前位置移到前一列
\f 換頁(FF),將當(dāng)前位置移到下頁開頭
\n 換行符
\r 回車符
\t 水平制表符
\v 垂直制表符
\' 單引號
\" 雙引號
\000 1到3位八進制數(shù)所代表的任意字符
\xhh... 1到2位十六進制所代表的任意字符

以下為字符串字面量的簡單實例:

import Cocoa

let stringL = "Hello\tWorld\n\nW3Cschool教程官網(wǎng):\'http://www.o2fo.com\'"
print(stringL)

以上程序執(zhí)行結(jié)果為:

Hello	World

W3Cschool教程官網(wǎng):'http://www.o2fo.com'

布爾型字面量

布爾型字面量的默認(rèn)類型是 Bool。

布爾值字面量有三個值,它們是 Swift 的保留關(guān)鍵字:

  • true 表示真。

  • false 表示假。

  • nil 表示沒有值。