在查一个bug的时候,惊讶的发现自己把一个枚举类型(NSInteger)赋值给了一个NSNumber,然而编译器居然没有报错😡
直接将一个NSInteger类型赋值给NSNumber类型,编译器是会报错的。然而由于nil与0等价,因此当这个NSInteger是值为0的常量时,编译器会将其视为nil,因此不会报错。
由此,我们可以认识到Swift的Optional类型的价值,从语言的层面,减少程序员犯错的几率。
在查一个bug的时候,惊讶的发现自己把一个枚举类型(NSInteger)赋值给了一个NSNumber,然而编译器居然没有报错😡
直接将一个NSInteger类型赋值给NSNumber类型,编译器是会报错的。然而由于nil与0等价,因此当这个NSInteger是值为0的常量时,编译器会将其视为nil,因此不会报错。
由此,我们可以认识到Swift的Optional类型的价值,从语言的层面,减少程序员犯错的几率。