? ? ?不知不覺已經(jīng)使用swift開發(fā)了半年之久,在這之前一直都是用OC開發(fā)埃仪,入職這個公司后就開始使用swfit開發(fā)需求∫冶簦現(xiàn)在完全已經(jīng)適應(yīng)并且覺得swift超贊,個人覺得swift語法簡潔比起OC卵蛉。在這里記錄swift學(xué)習(xí)點滴
1.數(shù)組?Array
swift中沒有像OC中有NSArray和NSMutableArray的區(qū)別颁股,如果在對象創(chuàng)建時用的Var那就是可變的么库,用let聲明的就是不可變的數(shù)組對象當我們有改動的時候編譯器會有提示。
并且Swit中的array string dictionary都是值類型是結(jié)構(gòu)體甘有,而不像OC中那樣事引用類型廊散,這一點要特別注意??
2.非空! 可空梧疲?optional
Swift是一種強制類型的語言允睹。對于數(shù)據(jù)的f
"?" "!"這兩個符號是swift中最常見的標識符號了
"?"是可選型,1.可以不用初始化幌氮,該數(shù)據(jù)可以為空缭受。 2.在使用時,如果參數(shù)為可選型參數(shù)该互,則可以避免crash
"!"是必選型米者,1.必須要初始化,該數(shù)據(jù)不能為空宇智。 ?2.如果是必選型的參數(shù)蔓搞,如果該參數(shù)為空,則程序會產(chǎn)生crash随橘,因此使用時要特別的注意
3.swift類型判斷
is 能夠判斷一個實例的類是不是某個類 返回bool
as 能 夠轉(zhuǎn)換類型 但是要在繼承的前提下
4.類型推斷
swift對于類型有嚴格的要求,是強類型語言喂分,強類型語言在編譯階段就為開發(fā)者排除了很大一部分的類型不匹配的錯誤。當給不是同類型的量賦值時編譯器會報錯机蔗。swift中只有l(wèi)et來聲明常量蒲祈,var創(chuàng)建變量,當我們不明確指定所創(chuàng)建的數(shù)據(jù)是什么類型時萝嘁,編譯器會根據(jù)初始化值來動態(tài)確認它是什么類型的數(shù)據(jù)梆掸。如果想明確它的類型需要加冒號和類型,如:let a:Float = 2 ? ? var x:Int = 3.5
5.泛型編程
這個亮點雖然不是swift的特性牙言,但是它卻是比OC高級的地方之一酸钦,我們可以結(jié)合著協(xié)議來寫出很多高效并減少耦合的代碼
6.面向協(xié)議編程
swift中的協(xié)議與OC有著很大區(qū)別,Swift中的協(xié)議可以用擴展實現(xiàn)咱枉,相當于協(xié)議的一個方法卑硫,那么繼承這個協(xié)議的類就可以直接調(diào)用這個方法。而不是像OC中那樣必須要實現(xiàn)遵守的協(xié)議方法庞钢,這種思想其實還是面向?qū)ο蟮乃悸钒吻 6鴖wift的這種特性直接從之前的思想中擺脫出來,是我最喜歡swift的特性基括。