Swift 基本資料型別
有以下幾種基本資料型別:
- 整型
- 浮點型
- 布爾型
- 元組
- 可選值 Optional
1. 整型
var intType: Int = 11
print(intType) // 11
2. 浮點型
var floatType: Float = 3.14e3 // 10進制中,e表示10的n次方,3.14 * (10^3) = 3140.0
print(floatType) // 3140.0
var floatType2: Float = 0x2p3 // 16進制中,p表示2的n次方,2 * (2^3) = 16.0
print(floatType2) // 16.0
3. 布爾型
var boolType = true // or false
print(boolType) // true
4. 元組
允許不相關的型別自由組合為新的集合型別
// 定義元組,指定引數名稱
var person: (name: String, age: Int) = ("William", 18)
print("name:", person.name, ", age:", person.age) // name: William , age: 18
// 元組不指定引數名稱,只指定型別
var city: (String, Int) = ("Shanghai", 200000)
// 使用下標訪問
print(city.0, city.1) // Shanghai 200000
// 分解元組
var (name, code) = city
print(name, code) // Shanghai 200000
5. 可選值 Optional
對普通型別進行 Optional 包裝,實作對空值情況的監控,類似于 Kotlin 中可空型別的處理,即在型別或實體后面加不加問號,
- 如果是在實體后加問號,相當于是在呼叫實體時,對實體的值的空校驗
- 如果是在型別后加問號,相當于是指定當前變數值可為空 nil
// 單個 Optional 系結,if-let 結構
var obj: String? = "Wuhan"
if let temp = obj {
// 當 obj 不為 nil 時,將 obj 賦值給 temp
print("hello", temp) // hello Wuhan
} else {
// 否則重新為 obj 賦值
obj = "hello, if-let"
print(obj)
}
// 多個 Optional 系結
var obj1:Int? = 1
var obj2:Int? = 2
if let temp1 = obj1, let temp2 = obj2, temp1 < temp2 {
// 當全部不為 nil 且滿足子句 temp1 < temp2
print(temp1, temp2) // 1 2
} else {
print("obj1 or obj2 may be nil")
}
// Optional,可空,需要拆包
var obj4:Int?
obj4 = 3
// 編譯例外,沒有進行拆包
// print(obj4 + 1)
// 以下會自動拆包
var obj5:Int! // or Int
obj5 = 3
print(obj5 + 2) // 5
型別別名
型別別名,靈活使用可以優化代碼的可讀性
// 為 String 型別指定別名 Weight,后續可以像使用 String 一樣使用 Weight
typealias Weight = String
var weight:Weight = "50kg"
print(weight) // 50kg
自動推斷、可讀性優化,2/8/10/16 進制 表示
// 自動推斷型別
var a = 10, b:Int = 20, c = "hello swift"
print(a, b , c) // 10 20 hello swift
// 在數值前可加 0 進行位數填充,可加入下劃線,增加可讀性
var number1 = 001.234 // 1.234
var number2 = 1_234 // 1234
// 列印多個值使用逗號分隔
print(number1, number2) // 1.234 1234
// 二進制
var type_2 = 0b01
// 八進制
var type_8 = 0o02
// 十進制
var type_10 = 3
// 十六進制
var type_16 = 0x04
print(type_2, type_8 , type_10, type_16) // 1 2 3 4
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/342252.html
標籤:其他
