Swift 教學

整數

整數是不含小數點的數字,像是42-23。整數可以是有號(正數、零或負數)或是無號(正數或零)。

Swift提供8、16、32、64位元的有號和無號的整數型別。這些整數的命名方式跟C語言很類似,8位元的無號整數型別是UInt8,32位元的有號整數型別是Int32。就像所有Swift的其它型別,這些整數型別用的是大寫命名法。

下面我列出Swift所有的整數型別

Int8
Int16
Int32
Int64

UInt8
UInt16
UInt32
UInt64

Int
UInt

整數範圍

你可以用minmax屬性來存取每一個整數型別的最大值和最小值:

let minValue = UInt8.min // minValue為0,且是Uint8型別
let maxValue = UInt8.max // maxValue為255,且是UInt8型別

minmax所傳回值的型別,正是其所對應的整數型別(如上述UInt8,所傳回的型別為UInt8),且可用在相同型別的陳述式

let a:Uint8 = 0
let b = a + UInt8.max   //相同型別所以可以運算
let c = UInt8.max + Int.min //不同型別會產生編譯錯誤

Int

大部份的情況,你不需要在程式中選擇特定長度的整數,Swift提供一種額外的整數型別,Int,它有和當前平台的原生字元(word)相同的長度:

  • 在32位元的平台上,IntInt32是相同的長度
  • 在64位元的平台上,IntInt64是相同的長度

除非你需要使用特定長度的整數,不然在程式碼中使用Int來儲存整數值即可。這有助於程式碼的一致性和互用性。即使在32位元的平台上,Int可以儲存-2,147,483,648 ~ 2,147,483,647之間任何數值,對許多整數的應用已經非常足夠了。

UInt

Swift也提供無號的整數型別,UInt,和目前平台原生詞組(word)有相同的大小

  • 在 32 位元平台上,UInt 是與 UInt32 擁有相同大小。
  • 在 64 位元平台上,UInt 是與 UInt64 擁有相同大小。

注意:

只有在你需要儲存和目前平台原生字組(word)相同大小的無號整數時才使用UInt。否則建議使用Int,即使要儲存的值已知是非負數。統一使用Int有助程式的互用性,避免不同數字型別間需要轉換,且符合整數型別推斷,請參考型別安全和型別推斷