? ? ? ? ? ? 博主的第一次決定奉獻(xiàn)給Swift,在之前一直使用OC,雖然知道Swift各種優(yōu)勢(shì)但是就是不想學(xué)習(xí),一方面是Swift的不成熟性和第三方的不完整性,例外一方面是自己太懶了梧乘,公司也沒有要用Swift開發(fā)的跡象。但是Swift4.0出來后庐杨,深切的感覺到Swift必要性选调,因?yàn)椴┲鞯呐笥褌兊墓拘马?xiàng)目都是用Swift進(jìn)行開發(fā),那么接下來開始Swift的學(xué)習(xí)吧A榉荨H士啊!
? ? ? ? Swift的自我感覺有用地方:
1.可選類型
Swift使用Optional處理數(shù)據(jù)缺失各吨,可選表示"那兒有一個(gè)值枝笨,并且它等于 x "或者"那兒沒有值"袁铐。簡(jiǎn)單就是處理為空的數(shù)據(jù)。有2種聲明方式(表示要么optionalInt不存在是nil横浑,存在則是想要的值):
var optionalInt : Int? ? = 100 ? ? ? ? ? ?
?var optionalIntt : Optional = 100
optionalInt的解析可以直接使用剔桨,但是打印出來并不是我們想要的值:
Optional(100)
我們可以使用!強(qiáng)制解析徙融,注意:使用!來獲取一個(gè)不存在的可選值會(huì)導(dǎo)致運(yùn)行時(shí)錯(cuò)誤洒缀。使用!來強(qiáng)制解析值之前,一定要確定可選包含一個(gè)非nil的值欺冀。因此我們常用if判斷一下
if optionalIntt != nil {
print(optionalIntt)
} else {
print("optionIntt是個(gè)空字符串")
}
print(optionalIntt)
目前我沒發(fā)現(xiàn)可選類型有什么用树绩。等后面再進(jìn)行解決。隐轩。
2.運(yùn)算符
1.Swift運(yùn)算符和OC差距不大饺饭,沒有了++和--,可使用+=和-=來進(jìn)行代替
2.區(qū)間運(yùn)算符:(1)閉區(qū)間運(yùn)算符 :1...5(包含12345)
? ? ? ? ? ? ? ? ? ? ? ? ? (2)半開區(qū)間運(yùn)算符:1..<5(包含1234)
3.容器
1.數(shù)組:Swift的數(shù)組不同于OC:(1)相同的值可以出現(xiàn)在數(shù)組不同的位置(2)數(shù)組會(huì)檢測(cè)元素類型,類型不同會(huì)報(bào)錯(cuò)(3)沒有可變數(shù)組和不可變數(shù)組职车,都可以進(jìn)行增刪改成
【1】創(chuàng)建一個(gè)數(shù)組
var firstArr : [Int] = []
【2】增
firstArr.append(1)//添加int 1
firstArr += [2]//添加int 2
【3】刪除
someArr.remove(at: 1)
【4】改
firstArr[1] = 20
【5】合并2個(gè)數(shù)組
print(firstArr + someArr)
【6】遍歷數(shù)組
for item in allArr {
print("值為\(item)" + "ok")
}
for (index, item) in someArr.enumerated() {
print("\(index) = \(item)")
}
2.字典瘫俊,Swift的字典和OC差不多,但是沒有可變數(shù)組的說法
【1】創(chuàng)建一個(gè)數(shù)組
var firstDic = [String: Int]()
【2】增,改:字典的添加是直接賦值悴灵,如果key存在則是更改扛芽,如果key不存在則是添加
firstDic["one"] = 10//添加元素
firstDic["two"] = 20//添加元素
firstDic["one"] = 30//更改key=one的元素
【3】刪除
firstDic.removeValue(forKey: "one")
【4】遍歷字典
for (key, value) in firstDic {//返回的是key和value
print("\(key):\(value)")
}
for (key, value) in firstDic.enumerated() {//此時(shí)的key是索引,value是 (key, value)
print("\(key):\(value)")
}
【5】獲取key和Value數(shù)組
for item in firstDic.keys {
print(item)
}
for item in firstDic.values {
print(item)
}