整數是不含小數點的數字,像是42
和-23
。整數可以是有號
(正數、零或負數)或是無號
(正數或零)。
Swift提供8、16、32、64位元的有號和無號的整數型別。這些整數的命名方式跟C語言很類似,8位元的無號整數型別是UInt8
,32位元的有號整數型別是Int32
。就像所有Swift的其它型別,這些整數型別用的是大寫命名法。
下面我列出Swift所有的整數型別
Int8
Int16
Int32
Int64
UInt8
UInt16
UInt32
UInt64
Int
UInt
你可以用min
和max
屬性來存取每一個整數型別的最大值和最小值:
let minValue = UInt8.min // minValue為0,且是Uint8型別
let maxValue = UInt8.max // maxValue為255,且是UInt8型別
min
和max
所傳回值的型別,正是其所對應的整數型別(如上述UInt8,所傳回的型別為UInt8),且可用在相同型別的陳述式
let a:Uint8 = 0
let b = a + UInt8.max //相同型別所以可以運算
let c = UInt8.max + Int.min //不同型別會產生編譯錯誤
大部份的情況,你不需要在程式中選擇特定長度的整數,Swift提供一種額外的整數型別,Int
,它有和當前平台的原生字元(word)相同的長度:
Int
跟Int32
是相同的長度Int
跟Int64
是相同的長度除非你需要使用特定長度的整數,不然在程式碼中使用Int
來儲存整數值即可。這有助於程式碼的一致性和互用性。即使在32位元的平台上,Int
可以儲存-2,147,483,648 ~ 2,147,483,647之間任何數值,對許多整數的應用已經非常足夠了。
Swift也提供無號的整數型別,UInt
,和目前平台原生詞組(word)有相同的大小
注意:
只有在你需要儲存和目前平台原生字組(word)相同大小的無號整數時才使用UInt。否則建議使用Int,即使要儲存的值已知是非負數。統一使用Int有助程式的互用性,避免不同數字型別間需要轉換,且符合整數型別推斷,請參考型別安全和型別推斷