nil == 0的陷阱

在查一個(gè)bug的時(shí)候,驚訝的發(fā)現(xiàn)自己把一個(gè)枚舉類型(NSInteger)賦值給了一個(gè)NSNumber,然而編譯器居然沒有報(bào)錯(cuò)??

直接將一個(gè)NSInteger類型賦值給NSNumber類型,編譯器是會報(bào)錯(cuò)的。然而由于nil與0等價(jià),因此當(dāng)這個(gè)NSInteger是值為0的常量時(shí),編譯器會將其視為nil,因此不會報(bào)錯(cuò)。

由此,我們可以認(rèn)識到Swift的Optional類型的價(jià)值,從語言的層面,減少程序員犯錯(cuò)的幾率。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容