Swift 是一門開(kāi)發(fā) iOS, macOS, watchOS 和 tvOS 應(yīng)用的語(yǔ)言
基礎(chǔ)數(shù)據(jù)類型:整型(Int); 浮點(diǎn)型(Double or Float); 布爾型(Bool); 文本型(String)
基本的集合:數(shù)組(Array)、集合(Set)和字典(Dictionary)
高階數(shù)據(jù)類型:元組(Tuple)
常量和變量
常量設(shè)定之后就不能更改;變量可以隨意更改
聲明:常量用let;變量用var
//聲明一個(gè) constant 常量,值是 10let constant = 10 //聲明一個(gè) variable 變量,初始值 10 var variable = 10 //將 variable 改為 20variable = 20//聲明多個(gè)變量 用“,”隔開(kāi)var a=1, b=2, c=3
注釋:
// 單行注釋/*多行注釋*/
命名:包含幾乎所有的字符
let a = 123let 漢字 = “漢字”let = “表情”
注意:
命名不能包含數(shù)學(xué)符號(hào),箭頭,非法的Unicode 碼位,連線與制表符。不可以數(shù)字開(kāi)頭,其他地方可以包含數(shù)字。
輸出:print()
// 輸出print(“輸出”)// 123print(a)// 輸出 is 123print(” 輸出 is (a)”)
類型推斷和安全
- 推斷:根據(jù)你賦值的值來(lái)推斷出是什么類型的數(shù)據(jù)
- 安全:如果你的代碼需要一個(gè) String,你絕對(duì)不可能讓你傳入其他類型的數(shù)據(jù)
// a 會(huì)被推測(cè)為 Int 類型let a = 123// b 會(huì)被推測(cè)為 String 類型let b = “123”// c 會(huì)被推測(cè)為 浮點(diǎn) 類型let c =3.1415926
整數(shù)
Swift 提供了8、16、32和64位的有符號(hào)和無(wú)符號(hào)整數(shù)類型
Int :存儲(chǔ)的整數(shù)范圍( -2,147,483,648 ~ 2,147,483,647),在一般情況下夠用了
- 在32位平臺(tái)上,Int 和 Int32 長(zhǎng)度相同。
- 在64位平臺(tái)上,Int 和 Int64 長(zhǎng)度相同。
UInt:特殊的無(wú)符號(hào)類型(盡量不要使用 UInt)
- 在32位平臺(tái)上,Int 和 Int32 長(zhǎng)度相同。
- 在64位平臺(tái)上,Int 和 Int64 長(zhǎng)度相同。
浮點(diǎn)數(shù)
有小數(shù)部分的數(shù)字: 3.1415926、 -3.1415926;比整型表示的范圍更大
- Double 64 位,精度要求高使用的類型;至少有 15 位小數(shù)
- Float 32位,精度要求不高使用的類型;只有 6 位小數(shù)
布爾
Swift 有兩個(gè)布爾常量,true 和 false
let a = truelet b = false
布爾使用
let a = trueif a { print(“真”)} else { print(“假”)}
別名
typealias 關(guān)鍵字來(lái)定義類型別名
// 定義別名typealias IntTypealias = Int// 使用var a = IntTypealias.min var b = Int.min// a 等價(jià)于 b
元組
元組(tuples)把多個(gè)值組合成一個(gè)復(fù)合值。元組內(nèi)的值可以是任意類型。
// a 的類型是 (Int, String, Double)let a = (1, “漢字”, 3.1415926)
元組分解
let (b,c,d) = a// 輸出: 1print(b)// 輸出: 漢字print(c)/*如果你只需要一部分元組值,分解的時(shí)候可以把要忽略的部分用下劃線(_)標(biāo)記*/let (e,_) = a// 輸出: 1print(e)//通過(guò)下標(biāo)來(lái)訪問(wèn)單個(gè)元素,下標(biāo)從零開(kāi)始print(“第一個(gè): (a.0)”)// 第一個(gè):1print(“第二個(gè): (a.1)”)// 第二個(gè):漢字//定義元組的時(shí)候給單個(gè)元素命名:let f = (key: 10, val: “漢字”)// 10 print(key)
元組不適合用來(lái)創(chuàng)建復(fù)雜的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)比較復(fù)雜,用類或結(jié)構(gòu)體去建模
可選型和nil
可選類型表示:有值或者沒(méi)有值
nil 不能用于非可選的常量和變量
var a: Int? = 10a = nillet b = “123”// c 推測(cè)為 可選類型// Int(b) 有可能不能轉(zhuǎn)let c = Int(a)
可選綁定
if let a = Int(b) { print(“‘(b)’ 可以轉(zhuǎn)換成 (a)”)} else { print(“‘(b)’ ?轉(zhuǎn)換失敗”)}
?和 !
//表示 a 是可以選類型let a:string? = “1234”// b 一定有值let b:String! = “5678”let c = a!// 需要感嘆號(hào)來(lái)獲取值let d = b// 不需要感嘆號(hào)來(lái)獲取值