知识卡片
可空类型把缺失值收编进类型系统
内容
Swift的可空类型(Optional,写作T?)让任意类型——不只是对象,包括Int、String这些基础类型——都能显式表达”可能没有值”。这与Objective-C只有对象指针能为nil、基础类型无法表达缺失形成对照:一个普通String变量在Swift里被类型系统保证不可能是nil,只有显式标了?的String?才可能没有值,编译器会强制你在访问前处理”没有值”这个分支。发散:这把”某个值到底可不可能缺失”从代码注释或开发者记忆里,变成了编译器能检查的类型信息,是[[整数溢出默认触发陷阱]][[switch必须全覆盖且默认不穿透]]同一条”把风险显式化”主线在类型系统层面的延伸,也是Swift被称为”安全语言”最核心的支柱。
参考来源
《Swift编程权威指南》第8章《可空类型》