版本記錄
版本號 | 時(shí)間 |
---|---|
V1.0 | 2017.07.22 |
前言
我是swift2.0的時(shí)候開始接觸的厘擂,記得那時(shí)候還不是很穩(wěn)定昆淡,公司的項(xiàng)目也都是用oc做的,并不對swift很重視刽严,我自己學(xué)了一段時(shí)間昂灵,到現(xiàn)在swift3.0+已經(jīng)出來了,自己平時(shí)也不寫舞萄,忘記的也差不多了眨补,正好項(xiàng)目這段時(shí)間已經(jīng)上線了,不是很忙倒脓,我就可以每天總結(jié)一點(diǎn)了撑螺,希望對自己對大家有所幫助。在總結(jié)的時(shí)候我會對比oc進(jìn)行說明崎弃,有代碼的我會給出相關(guān)比對代碼甘晤。
1. swift簡單總結(jié)(一)—— 數(shù)據(jù)簡單值和類型轉(zhuǎn)換
2. swift簡單總結(jié)(二)—— 簡單值和控制流
3. swift簡單總結(jié)(三)—— 循環(huán)控制和函數(shù)
4. swift簡單總結(jié)(四)—— 函數(shù)和類
5. swift簡單總結(jié)(五)—— 枚舉和結(jié)構(gòu)體
6. swift簡單總結(jié)(六)—— 協(xié)議擴(kuò)展與泛型
7. swift簡單總結(jié)(七)—— 數(shù)據(jù)類型
類型別名
swift
中也有別名,oc
中也有饲做,就是給指定類型重新命名线婚,然后在使用該指定類型的地方,就可以使用別名替代了艇炎。
下面我們先看一下oc
中的別名酌伊。
typedef CGFLOAT_TYPE CGFloat;
這里以后CGFLOAT_TYPE
就用CGFloat
代表浮點(diǎn)類型。
下面我們看一下swift
中的別名缀踪。
//別名
typealias numberInt = UInt16
let min = numberInt.min
let max = numberInt.max
print(min)
print(max)
下面看輸出結(jié)果
0
65535
這里numberInt
就相當(dāng)于UInt16
居砖。
布爾值
swift
有一個(gè)基本的Boolean
類型,叫做Bool
驴娃,布爾值指邏輯上的logical
奏候,因?yàn)樗鼈冎荒苁钦婊蛘呒伲?code>swift中有兩個(gè)布爾常量,分別是true
和false
唇敞。
下面我們看一下swift
中的代碼蔗草。
//bool值
let isOrange = true
if isOrange {
print("yes")
}
else {
print("no")
}
下面看輸出結(jié)果
yes
但是如果要像下面這么寫就是不可以的咒彤。
//bool值
let isOrange = 1
if isOrange {
print("yes")
}
else {
print("no")
}
上面的就會報(bào)錯(cuò),但是對于oc
中就可以if后面接任意值和對象咒精,包括整型或者對象镶柱。而且oc
中的BOOL
類型是YES
和NO
。
元組
??元組tuples
就是把多個(gè)值組合成一個(gè)復(fù)合值模叙,元組內(nèi)的值可以是任意類型歇拆,并不要求是相同類型。這個(gè)是oc
中沒有的定義范咨。例如(404, "Not Found")
就是一個(gè)元組故觅。
//這個(gè)元祖的類型就是(Int ,String),值是(404, "Not Found")
let http404Error = (404, "Not Found")
上面的元組可以描述為:一個(gè)類型為(Int ,String)
的元組渠啊。
??可以把任意順序的類型組合成一個(gè)元組输吏,這個(gè)元組可以包含所有類型,只要你想替蛉,你可以創(chuàng)建一個(gè)類型為(Int, Int, Int)
或者(String, Bool)
或者其他任何你想要的組合元組贯溅。
你可以將一個(gè)元組的內(nèi)容分解decompose
成單獨(dú)的常量和變量,然后就可以正常使用了躲查,下面看代碼盗迟。
//tuple元組
let http404Error = (404, "Not Found")
let (statusCode, statusMessage) = http404Error
print("The status code is \(statusCode)")
print("The status message is \(statusMessage)")
下面看輸出結(jié)果
The status code is 404
The status message is Not Found
如果你只需要一部分元組值,分解的時(shí)候可以把要忽略的部分用下劃線_
標(biāo)記熙含,看下邊的代碼罚缕。
let http404Error = (404, "Not Found")
let (statusCode, _) = http404Error
print("The status code is \(statusCode)")
下面我們看輸出結(jié)果。
The status code is 404
還可以通過下標(biāo)來訪問元組中的單個(gè)元素怎静,下標(biāo)從0開始邮弹。
let http404Error = (404, "Not Found")
let (statusCode, statusMessage) = http404Error
print("The status code is \(http404Error.0)")
print("The status message is \(http404Error.1)")
下面看輸出結(jié)果
The status code is 404
The status message is Not Found
也可以在定義元組的時(shí)候給單個(gè)元素命名。
let http200Status = (statusCode : 200, statusMessage : "OK")
給元組中的元素命名后蚓聘,你可以通過名字來獲取這些元素的值腌乡。
let http200Status = (statusCode : 200, statusMessage : "OK")
print("The status code is \(http200Status.statusCode)")
print("The status message is \(http200Status.statusMessage)")
下面看輸出結(jié)果
The status code is 200
The status message is OK
??作為函數(shù)返回值時(shí),元組就非常有用了夜牡,一個(gè)用來獲取網(wǎng)頁函數(shù)可能會返回一個(gè)(Int, String)
元組類描述是否獲取成功与纽,和只能返回一個(gè)類型的值比起來,一個(gè)包含兩個(gè)不同類型值的元組可以讓函數(shù)的返回信息更有用塘装。
注意:元組在臨時(shí)組織值的時(shí)候很有用急迂,但是并不適合創(chuàng)建復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如果你的數(shù)據(jù)結(jié)構(gòu)并不是臨時(shí)使用蹦肴,一般使用類或者結(jié)構(gòu)體僚碎,而不是元組。
后記
未完阴幌,待續(xù)~~~