1. 程式人生 > >Swift基礎學習(二)數據類型

Swift基礎學習(二)數據類型

開發 劃線 amp and running tar get 所在 字面值

  在編程語言中,不同的數據信息需要不同的數據類型來存儲,計算機內存中針對不同的數據類型它們所分配的內存大小是不同的,特定的值需要特定的類型來聲明。

 Swift 數據類型

  內置數據類型

  整數 - Int & UInt

  根據一個整數變量占據的內存空間(8/16/32/64-bit,現在 iOS 開發基本全部是 64 位)以及整數是否帶有符號(Unsinged),Swift 一共定義了 8 種不同的整數類型:

  Int8/Int16/Int32/Int64

  UInt8/UInt16/UInt32/UInt64

  第一行表示有符號整數,第二行表示無符號整數。

  一般不會在代碼中直接使用這些具體的整數類型,只使用 Int 來定義有符號整數,使用 UInt 來定義無符號整數。Swift 編譯器會根據當前的目標編譯平臺,把 Int 或者 UInt 轉換成相應的整數類型。

  例如在 32 位平臺上,Int 和 Int32 表示的整數長度相等。

  在 64 位平臺上,分別使用 mix 和 max 方法,看看 Int 和 Int64 所表達的值分別是多:

 1 print("Int.min = \(Int.min)")
 2 print("Int.max = \(Int.max)")
 3 print("Int64.min = \(Int64.min)")
 4 print("Int64.max = \(Int64.max)")
 5 
 6 打印結果:
 7 Int.min = -9223372036854775808
 8 Int.max = 9223372036854775807
9 Int64.min = -9223372036854775808 10 Int64.max = 9223372036854775807

  Int 和 Int64 表達的範圍是一樣的。

  同時在 Swift 裏面,可以用不同的進制來表達一個整數:

1 let fifteenInDecimal = 15 // 10 進制
2 let fifteenInHex = 0xF // 16 進制
3 let fifteenInOctal = 0o17 // 8 進制
4 let fifteenInBinary = 0b1111 // 2 進制

  以及在數字中使用下劃線:

1 let million = 1_000_000

  提示: 除非所在的硬件平臺有特別明確的要求要使用 UInt 來定義無符號整數,那麽應該盡可能的使用 Int 來表達所有的整數類型,哪怕可以確定一個整數一定是非負數,這會減少很多不必要的類型轉換的麻煩。

 浮點數 - Float & Double

  在 Swift 裏面,根據表達的精度不同,有兩種不同的浮點數類型:

  Float: 最多表達 6 位精度的浮點數。

  Double: 至少可以表達 15 位精度的浮點數。

1 var oneThirdInFloat: Float = 1/3
2 var oneThirdInDouble: Double = 1/3
3 
4 print("\(oneThirdInFloat)")
5 print("\(oneThirdInDouble)")
6 
7 打印:
8 0.333333
9 0.333333333333333

  還可以使用科學計數法表示浮點數:

1 var PI = 0.314e1
2 PI = 314e-2

  提示: 如果沒有明確的需求,應該統一使用 Double 來定義浮點數。

 和數字有關的 Type Inference

  在 Swift 裏,當給變量不指定類型的時候,編譯器會把整數的類型推倒為 Int,會把浮點數的類型推倒為 Double:

1 var three = 3
2 print(" 3 的類型是: \(type(of: three))")
3 
4 var zeroPointForteen = 0.4
5 print(" 0.4 的類型是: \(type(of: zeroPointForteen))")
6 
7 打印:
8  3 的類型是: Int
9  0.4 的類型是: Double

  在 Swift 裏面可以把不同類型的數字的字面值直接進行運算:

1 var PI = 3 + 0.14
2 print(" PI 的值: \(PI), PI 的類型是:\(type(of: PI))")
3 
4 打印:
5  PI 的值: 3.14, PI 的類型是:Double

  但是不能把不同數字類型的變量直接進行算數運算,當對變量進行算數運算的時候,所有變量的類型必須是相同的,如果變量類型不同,必須明確將其中一些變量進行類型轉換:

1 var sum = Double(three) + zeroPointForteen

  從上面可以看出,使用 Double(three) 把一個 Int 類型的 three "轉換"成了浮點數,在這裏,之所以對轉換加引號,是因為並沒有真的把 three 類型從 Int 轉換成 Double,而是用 three 的值,初始化了一個新的值為 3 的 Double,並用這個新的 Double 和 zeroPointForteen 相加而已。

參考鏈接:https://www.boxueio.com/series/swift-up-and-running/ebook/2

Swift基礎學習(二)數據類型