第3條:多用字面量語(yǔ)法,少用與之等價(jià)的方法
1. 字面數(shù)值
使用字面量能令代碼更為簡(jiǎn)潔:
NSNumber *someNumber = @1;
*** 字面量語(yǔ)法的好處碴倾! ***
- 令代碼更為簡(jiǎn)潔。
- 能夠以NSNumber實(shí)例表示的所有數(shù)據(jù)類(lèi)型(int、float咱士、double、Bool和char)都可以使用字面量語(yǔ)法轧钓。
- 字面量語(yǔ)法同樣適用于算法表達(dá)式序厉。
2. 字面量數(shù)組
*** 使用字面量數(shù)組的優(yōu)勢(shì)! ***
- 寫(xiě)法簡(jiǎn)單毕箍,而且還利于操作數(shù)組弛房。
- 用字面量語(yǔ)法創(chuàng)建數(shù)組要注意,若數(shù)組元素對(duì)象中有nil而柑,則會(huì)拋出異常文捶。
- 使用字面量語(yǔ)法更為安全(拋出異常令應(yīng)用程序終止執(zhí)行,通過(guò)異趁娇龋可以更快地發(fā)現(xiàn)錯(cuò)誤)粹排。
3. 字面量字典
*** 使用字面量字典的優(yōu)勢(shì)! ***
- 寫(xiě)法更簡(jiǎn)明涩澡,而且鍵出現(xiàn)在對(duì)象之前顽耳,理解起來(lái)較順暢。
- 與數(shù)組一樣,用字面量語(yǔ)法創(chuàng)建字典時(shí)也有個(gè)問(wèn)題:一旦有值為nil射富,便會(huì)拋出異常膝迎。
- 字典也可以像數(shù)組的取下標(biāo)操作那樣訪(fǎng)問(wèn)某個(gè)鍵所對(duì)應(yīng)的元素。
4. 可變數(shù)組與字典
如果數(shù)組與字典對(duì)象是可變的胰耗,那么久能通過(guò)下標(biāo)修改其中的元素值限次。
5. 局限性
- 除了NSString類(lèi)之外,所創(chuàng)建出來(lái)的對(duì)象必須屬于Foundation框架中的類(lèi)才行柴灯。如果自定義了這些類(lèi)的子類(lèi)卖漫,則無(wú)法用字面量語(yǔ)法創(chuàng)建其對(duì)象。要想創(chuàng)建自定義子類(lèi)的實(shí)例弛槐,必須采用“非字面量語(yǔ)法”懊亡。
例如,NSArray乎串、NSDictionary店枣、NSNumber都是業(yè)已定型的“子族”,因此很少有人會(huì)從其中自定義子類(lèi)叹誉;創(chuàng)建字符串時(shí)可以使用NSString自定義的子類(lèi)膏秫,然而必須要修改編譯器的選項(xiàng)才行扁藕。 - 使用字面量語(yǔ)法創(chuàng)建出來(lái)的字符串明未、數(shù)組轩触、字典對(duì)象都是不可變。若想要可變版本的對(duì)象匠襟,則需復(fù)制一份(需要調(diào)用mutableCopy方法钝侠,再創(chuàng)建出一個(gè)新的對(duì)象)。
要點(diǎn)
- 應(yīng)該使用字面量語(yǔ)法來(lái)創(chuàng)建字符串酸舍、數(shù)值帅韧、數(shù)組、字典啃勉。與創(chuàng)建此類(lèi)對(duì)象的常規(guī)方法相比忽舟,這么做更加簡(jiǎn)明扼要。
- 應(yīng)該通過(guò)取下標(biāo)操作來(lái)訪(fǎng)問(wèn)數(shù)組下標(biāo)或字典中的鍵所對(duì)應(yīng)的元素淮阐。
- 用字面量語(yǔ)法創(chuàng)建數(shù)組或字典時(shí)叮阅,若值中有nil,則會(huì)拋出異常泣特。因此浩姥,務(wù)必確保值里不含nil。