更新時(shí)間:2016年03月02日17時(shí)05分 來(lái)源:傳智播客 瀏覽次數(shù):
Swift正在完成一個(gè)驚人的壯舉,它正在改變我們?cè)谔O(píng)果設(shè)備上編程的方式,引入了很多現(xiàn)代范例,例如:函數(shù)式編程和相比于OC這種純面向?qū)ο笳Z(yǔ)言更豐富的類(lèi)型檢查。
Swift語(yǔ)言希望通過(guò)采用安全的編程模式去幫助開(kāi)發(fā)者避免bug。然而這也會(huì)不可避免的產(chǎn)生一些人造的陷阱,他們會(huì)在編譯器不報(bào)錯(cuò)的情況下引入一些Bug。這些陷阱有的已經(jīng)在Swift book中提到,有一些還沒(méi)有。
總結(jié):
一、在協(xié)議擴(kuò)展中重寫(xiě)協(xié)議中的屬性時(shí)要仔細(xì)核對(duì);
二、在協(xié)議擴(kuò)展中定義的每一個(gè)屬性,需要在協(xié)議中進(jìn)行聲明;
三、不要對(duì)導(dǎo)入的第三方協(xié)議進(jìn)行屬性擴(kuò)展,那樣可能需要?jiǎng)討B(tài)調(diào)度;
四、如果一個(gè)新的屬性需要?jiǎng)討B(tài)調(diào)度,避免使用約束性協(xié)議擴(kuò)展;
五、避免把一個(gè)有副作用的表達(dá)式的結(jié)果通過(guò)可選鏈賦值給等號(hào)左邊的變量;
六、避免在閉包中使用inout參數(shù);
七、避免在柯里化函數(shù)中使用inout參數(shù),因?yàn)槿绻愫髞?lái)將柯里化改為顯式的創(chuàng)建閉包,這段代碼就會(huì)產(chǎn)生錯(cuò)誤。
北京校區(qū)