Swift基础学习(二)数据类型
在編程語(yǔ)言中,不同的數(shù)據(jù)信息需要不同的數(shù)據(jù)類型來存儲(chǔ),計(jì)算機(jī)內(nèi)存中針對(duì)不同的數(shù)據(jù)類型它們所分配的內(nèi)存大小是不同的,特定的值需要特定的類型來聲明。
Swift 數(shù)據(jù)類型
內(nèi)置數(shù)據(jù)類型
整數(shù) - Int & UInt
根據(jù)一個(gè)整數(shù)變量占據(jù)的內(nèi)存空間(8/16/32/64-bit,現(xiàn)在 iOS 開發(fā)基本全部是 64 位)以及整數(shù)是否帶有符號(hào)(Unsinged),Swift 一共定義了 8 種不同的整數(shù)類型:
Int8/Int16/Int32/Int64
UInt8/UInt16/UInt32/UInt64
第一行表示有符號(hào)整數(shù),第二行表示無符號(hào)整數(shù)。
一般不會(huì)在代碼中直接使用這些具體的整數(shù)類型,只使用 Int 來定義有符號(hào)整數(shù),使用 UInt 來定義無符號(hào)整數(shù)。Swift 編譯器會(huì)根據(jù)當(dāng)前的目標(biāo)編譯平臺(tái),把 Int 或者 UInt 轉(zhuǎn)換成相應(yīng)的整數(shù)類型。
例如在 32 位平臺(tái)上,Int 和 Int32 表示的整數(shù)長(zhǎng)度相等。
在 64 位平臺(tái)上,分別使用 mix 和 max 方法,看看 Int 和 Int64 所表達(dá)的值分別是多:
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 打印結(jié)果: 7 Int.min = -9223372036854775808 8 Int.max = 9223372036854775807 9 Int64.min = -9223372036854775808 10 Int64.max = 9223372036854775807Int 和 Int64 表達(dá)的范圍是一樣的。
同時(shí)在 Swift 里面,可以用不同的進(jìn)制來表達(dá)一個(gè)整數(shù):
1 let fifteenInDecimal = 15 // 10 進(jìn)制 2 let fifteenInHex = 0xF // 16 進(jìn)制 3 let fifteenInOctal = 0o17 // 8 進(jìn)制 4 let fifteenInBinary = 0b1111 // 2 進(jìn)制以及在數(shù)字中使用下劃線:
1 let million = 1_000_000提示: 除非所在的硬件平臺(tái)有特別明確的要求要使用 UInt 來定義無符號(hào)整數(shù),那么應(yīng)該盡可能的使用 Int 來表達(dá)所有的整數(shù)類型,哪怕可以確定一個(gè)整數(shù)一定是非負(fù)數(shù),這會(huì)減少很多不必要的類型轉(zhuǎn)換的麻煩。
浮點(diǎn)數(shù) - Float & Double
在 Swift 里面,根據(jù)表達(dá)的精度不同,有兩種不同的浮點(diǎn)數(shù)類型:
Float: 最多表達(dá) 6 位精度的浮點(diǎn)數(shù)。
Double: 至少可以表達(dá) 15 位精度的浮點(diǎn)數(shù)。
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還可以使用科學(xué)計(jì)數(shù)法表示浮點(diǎn)數(shù):
1 var PI = 0.314e1 2 PI = 314e-2提示: 如果沒有明確的需求,應(yīng)該統(tǒng)一使用 Double 來定義浮點(diǎn)數(shù)。
和數(shù)字有關(guān)的 Type Inference
在 Swift 里,當(dāng)給變量不指定類型的時(shí)候,編譯器會(huì)把整數(shù)的類型推倒為 Int,會(huì)把浮點(diǎn)數(shù)的類型推倒為 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 里面可以把不同類型的數(shù)字的字面值直接進(jìn)行運(yùn)算:
1 var PI = 3 + 0.14 2 print(" PI 的值: \(PI), PI 的類型是:\(type(of: PI))") 3 4 打印: 5 PI 的值: 3.14, PI 的類型是:Double但是不能把不同數(shù)字類型的變量直接進(jìn)行算數(shù)運(yùn)算,當(dāng)對(duì)變量進(jìn)行算數(shù)運(yùn)算的時(shí)候,所有變量的類型必須是相同的,如果變量類型不同,必須明確將其中一些變量進(jìn)行類型轉(zhuǎn)換:
1 var sum = Double(three) + zeroPointForteen從上面可以看出,使用 Double(three) 把一個(gè) Int 類型的 three "轉(zhuǎn)換"成了浮點(diǎn)數(shù),在這里,之所以對(duì)轉(zhuǎn)換加引號(hào),是因?yàn)椴]有真的把 three 類型從 Int 轉(zhuǎn)換成 Double,而是用 three 的值,初始化了一個(gè)新的值為 3 的 Double,并用這個(gè)新的 Double 和 zeroPointForteen 相加而已。
參考鏈接:https://www.boxueio.com/series/swift-up-and-running/ebook/2
?
轉(zhuǎn)載于:https://www.cnblogs.com/chmhml/p/6892308.html
總結(jié)
以上是生活随笔為你收集整理的Swift基础学习(二)数据类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序下wxParse 渲染html代码
- 下一篇: 详解结构体内存对齐