知识卡片
let优先于var的不可变默认
内容
Swift用let声明常量、var声明变量,官方经验法则是”只对确实需要变化的实例用var,其余一律用let“,编译器会在常量被意外修改时直接报错。这把不可变性设为默认状态,把潜在的状态错误从运行时提前暴露到编译期。发散:这与函数式编程”默认不可变”的理念一致,也是[[类型推断与类型注解]]之外Swift另一处”安全性优先于灵活性”的设计取舍——默认更严格的约束,需要可变性时再显式声明,比默认可变、需要不可变时再加const风格的语言更难写出意外的状态突变。
参考来源
《Swift编程权威指南》第2章《类型、常量和变量》