二此蜈、整型
Swift提供8、16袄秩、32阵翎、64位形式的有符號(hào)及無(wú)符號(hào)整數(shù)逢并。關(guān)于這些整數(shù)類型的命名規(guī)范可以參見(jiàn)表2-1。
表2-1數(shù)據(jù)類型
數(shù)據(jù)類型
名稱
說(shuō)明
Int8
有符號(hào)8位整型
Int16
有符號(hào)16位整型
Int32
有符號(hào)32位整型
Int64
有符號(hào)64位整型
Int
平臺(tái)相關(guān)有符號(hào)整型
在32位平臺(tái)郭卫,Int與Int32寬度一致
在64位平臺(tái)砍聊,Int與Int64寬度一致
UInt8
無(wú)有符號(hào)8位整型
UInt16
無(wú)有符號(hào)16位整型
UInt32
無(wú)有符號(hào)32位整型
UInt64
無(wú)有符號(hào)64位整型
UInt
平臺(tái)相關(guān)無(wú)符號(hào)整型
在32位平臺(tái),UInt與UInt32寬度一致
在64位平臺(tái)箱沦,UInt與UInt64寬度一致
除非要求固定寬的整型,一般我們只使用Int或UInt,這些類型能夠與平臺(tái)保持一致辩恼。下面我們來(lái)看一個(gè)整型示例:
1 | ?import Foundation
2 | ?print("UInt范圍:\(UInt.min)~\(UInt.max)")
3 | ?print("Int范圍:\(Int.min)~\(Int.max)")
輸出結(jié)果如下
UInt范圍:0~18446744073709551615
Int范圍:-9223372036854775808~9223372036854775807
上述代碼是通過(guò)整數(shù)的min和max屬性計(jì)算個(gè)類型的范圍。min屬性獲得當(dāng)前整數(shù)的最小值, max屬性獲得當(dāng)前整數(shù)的最大值谓形。關(guān)于其他整型數(shù)據(jù)的范圍可以例子中的寫(xiě)法一致灶伊。
整型數(shù)據(jù)同布爾類型數(shù)據(jù)一樣,在不聲明數(shù)據(jù)類型的時(shí)候寒跳,Swift語(yǔ)言會(huì)對(duì)該數(shù)據(jù)類型進(jìn)行自行推斷聘萨。整型數(shù)據(jù)采用進(jìn)制數(shù)作為整型數(shù)據(jù)的表示方式。
我們?yōu)橐粋€(gè)整數(shù)變量賦值十進(jìn)制數(shù)童太、二進(jìn)制數(shù)米辐、八進(jìn)制數(shù)、十六進(jìn)制數(shù)书释。它們的表示方式如下:
二進(jìn)制數(shù),以0b為前綴,0是阿拉伯?dāng)?shù)字,不要誤以為是字母o,b是小寫(xiě)字母b,不能大寫(xiě);
八進(jìn)制數(shù),以0o為前綴,第一個(gè)字符是阿拉伯?dāng)?shù)字0,第二個(gè)字符是小寫(xiě)字母o翘贮,必須小寫(xiě);
十六進(jìn)制數(shù),以0x為前綴,第一個(gè)字符是阿拉伯?dāng)?shù)字0,第二個(gè)字符是小寫(xiě)字母x,必須小寫(xiě)。
例如下面語(yǔ)句都是整型10值給常量:
1 | ?let decimalInt =10
2 | ?let binaryInt = 0b1010
3 | ?let octalInt = 0o12
4 | ?let hexadecimalInt = 0xA
上述代碼爆惧,第1行代碼用十進(jìn)制表示整型數(shù)據(jù)10狸页。第2行代碼用二進(jìn)制表示整型數(shù)據(jù)10。第3行代碼用八進(jìn)制表示整型數(shù)據(jù)10扯再。第4行代碼用十六進(jìn)制表示整型數(shù)據(jù)10芍耘。
除此之外,在Swift中熄阻,為了閱讀的方便斋竞,對(duì)于較大的整數(shù)可添加多個(gè)零或下劃線以提高可讀性,這種方式均不會(huì)影響實(shí)際值秃殉。示例代碼如下:
1 | ?var myMoney = 3_360_000
2 | ?var phone = 136_2456_4678
第1行代碼定義了整型變量myMone坝初,并賦值為3360000,這里我在3_360_000中間添加了2個(gè)下劃線,這樣便于閱讀复濒,第2行代碼136_2456_4678是一個(gè)手機(jī)號(hào)碼脖卖,采用下劃線分隔,更容易閱讀巧颈。下劃線一般是三位加一個(gè)畦木。