Swift是蘋果開(kāi)發(fā)的開(kāi)發(fā)語(yǔ)言,與OC在語(yǔ)法上有很多差異,我最近開(kāi)始用swift開(kāi)發(fā),最明顯的差異是從語(yǔ)法上,由別扭到熟悉,現(xiàn)在要為了將來(lái)的開(kāi)發(fā)繼續(xù)擴(kuò)寬一下Swift的知識(shí)面,其實(shí)對(duì)于OC的開(kāi)發(fā)人員,Swift上手是很快的,最近除了Swift開(kāi)發(fā),也接觸了Flutter開(kāi)發(fā)和vue開(kāi)發(fā),在總結(jié)知識(shí)點(diǎn)的都時(shí)候都會(huì)記錄下來(lái):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一、Swift和OC的區(qū)別
1.語(yǔ)言設(shè)計(jì):swift是一個(gè)現(xiàn)代的變成語(yǔ)言,設(shè)計(jì)時(shí)考慮了安全性和高性能,他語(yǔ)言簡(jiǎn)潔,支持范型、閉包、錯(cuò)誤處理等現(xiàn)代編程特性;oc基于c語(yǔ)言,是一個(gè)面向?qū)ο蟮某?,?shí)用動(dòng)態(tài)運(yùn)行時(shí)環(huán)境,支持動(dòng)態(tài)類型和消息傳遞機(jī)制
2.性能:通常認(rèn)為Swift和OC性能相當(dāng),或者更快,他是靜態(tài)類型的,并且編譯器可以進(jìn)行更多的優(yōu)化;由于動(dòng)態(tài)特性,可能在某些情況下稍遜于Swift,但是大多數(shù)應(yīng)用差不多
3.語(yǔ)法:Swift語(yǔ)法更為簡(jiǎn)潔、清晰,易于閱讀和編寫



4.集成性:Swift可以無(wú)縫調(diào)用OC代碼,不需要導(dǎo)入對(duì)應(yīng)的頭文件;OC需要借助于Header file導(dǎo)入頭文件才可以使用
5.錯(cuò)誤處理:swift使用do、try、catch、throw等關(guān)鍵字進(jìn)行錯(cuò)誤處理;OC通常使用異常處理
其他的就不一一贅述了,我覺(jué)得主要的區(qū)別是這些,別的我覺(jué)得差異很小,幾乎可以忽略不計(jì)
二、Swift基礎(chǔ)知識(shí)
1.基本語(yǔ)法:使用let聲明常量;var聲明變量(不用擔(dān)心,如果你寫錯(cuò)了Xcode會(huì)提醒你修改)
例如:let a = "1234" //自動(dòng)識(shí)別為String類型
2.數(shù)據(jù)類型:
Int(整數(shù))、Float(單精度浮點(diǎn)數(shù))、Double(雙精度浮點(diǎn)數(shù))、Bool(布爾值)、String(字符串)、Character(字符)、Array(數(shù)組)、Dictionary(字典)、Tuple(元組)
別的跟OC差不多,但是字典的寫法有所不同,它的寫法如下

3.控制流:
if、switch ? ?、for-in、while、do-while
三、函數(shù)和閉包
1.定義函數(shù)

2.閉包

四、可選類型
1.可用于處理不存在的值
2.使用?聲明類型
3.使用if let或者guard let進(jìn)行解包
五、類和結(jié)構(gòu)體
類(class)和結(jié)構(gòu)體(struck)
都是引用類型,但是類可以繼承,class是類的關(guān)鍵字,struck是結(jié)構(gòu)體的關(guān)鍵字
剩下的枚舉、協(xié)議、擴(kuò)展、就不一一贅述了,下一節(jié),繼續(xù)學(xué)習(xí)細(xì)節(jié)的東西