在查一個(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ò)的幾率。