版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2017.07.22 |
前言
我是swift2.0的時候開始接觸的,記得那時候還不是很穩定,公司的項目也都是用oc做的,并不對swift很重視,我自己學了一段時間,到現在swift3.0+已經出來了,自己平時也不寫,忘記的也差不多了,正好項目這段時間已經上線了,不是很忙,我就可以每天總結一點了,希望對自己對大家有所幫助。在總結的時候我會對比oc進行說明,有代碼的我會給出相關比對代碼。
1. swift簡單總結(一)—— 數據簡單值和類型轉換
2. swift簡單總結(二)—— 簡單值和控制流
3. swift簡單總結(三)—— 循環控制和函數
4. swift簡單總結(四)—— 函數和類
5. swift簡單總結(五)—— 枚舉和結構體
6. swift簡單總結(六)—— 協議擴展與泛型
7. swift簡單總結(七)—— 數據類型
類型別名
swift
中也有別名,oc
中也有,就是給指定類型重新命名,然后在使用該指定類型的地方,就可以使用別名替代了。
下面我們先看一下oc
中的別名。
typedef CGFLOAT_TYPE CGFloat;
這里以后CGFLOAT_TYPE
就用CGFloat
代表浮點類型。
下面我們看一下swift
中的別名。
//別名
typealias numberInt = UInt16
let min = numberInt.min
let max = numberInt.max
print(min)
print(max)
下面看輸出結果
0
65535
這里numberInt
就相當于UInt16
。
布爾值
swift
有一個基本的Boolean
類型,叫做Bool
,布爾值指邏輯上的logical
,因為它們只能是真或者假,swift
中有兩個布爾常量,分別是true
和false
。
下面我們看一下swift
中的代碼。
//bool值
let isOrange = true
if isOrange {
print("yes")
}
else {
print("no")
}
下面看輸出結果
yes
但是如果要像下面這么寫就是不可以的。
//bool值
let isOrange = 1
if isOrange {
print("yes")
}
else {
print("no")
}
上面的就會報錯,但是對于oc
中就可以if后面接任意值和對象,包括整型或者對象。而且oc
中的BOOL
類型是YES
和NO
。
元組
??元組tuples
就是把多個值組合成一個復合值,元組內的值可以是任意類型,并不要求是相同類型。這個是oc
中沒有的定義。例如(404, "Not Found")
就是一個元組。
//這個元祖的類型就是(Int ,String),值是(404, "Not Found")
let http404Error = (404, "Not Found")
上面的元組可以描述為:一個類型為(Int ,String)
的元組。
??可以把任意順序的類型組合成一個元組,這個元組可以包含所有類型,只要你想,你可以創建一個類型為(Int, Int, Int)
或者(String, Bool)
或者其他任何你想要的組合元組。
你可以將一個元組的內容分解decompose
成單獨的常量和變量,然后就可以正常使用了,下面看代碼。
//tuple元組
let http404Error = (404, "Not Found")
let (statusCode, statusMessage) = http404Error
print("The status code is \(statusCode)")
print("The status message is \(statusMessage)")
下面看輸出結果
The status code is 404
The status message is Not Found
如果你只需要一部分元組值,分解的時候可以把要忽略的部分用下劃線_
標記,看下邊的代碼。
let http404Error = (404, "Not Found")
let (statusCode, _) = http404Error
print("The status code is \(statusCode)")
下面我們看輸出結果。
The status code is 404
還可以通過下標來訪問元組中的單個元素,下標從0開始。
let http404Error = (404, "Not Found")
let (statusCode, statusMessage) = http404Error
print("The status code is \(http404Error.0)")
print("The status message is \(http404Error.1)")
下面看輸出結果
The status code is 404
The status message is Not Found
也可以在定義元組的時候給單個元素命名。
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)")
下面看輸出結果
The status code is 200
The status message is OK
??作為函數返回值時,元組就非常有用了,一個用來獲取網頁函數可能會返回一個(Int, String)
元組類描述是否獲取成功,和只能返回一個類型的值比起來,一個包含兩個不同類型值的元組可以讓函數的返回信息更有用。
注意:元組在臨時組織值的時候很有用,但是并不適合創建復雜的數據結構,如果你的數據結構并不是臨時使用,一般使用類或者結構體,而不是元組。
后記
未完,待續~~~