Swift面试题更新 2026-08-03

请阐述 Swift 中 let 与 var 的定义及差异,并说明各自适用的场景分别是什么?

考察说明

考查对 Swift 常量与变量声明机制的准确理解和应用场景的判断。

回答思路

  1. 【回答框架 1】let 用于声明常量,一旦初始化后不可再修改;var 用于声明变量,在初始化后仍可重新赋值。这是 Swift 类型安全与不可变性的基础。
  2. 【回答框架 2】需要运行期可变的值时使用 var,例如计数器、状态标志、用户输入累积。需要固定不变的值使用 let,例如配置常量、固定公式系数、对象引用本身不变。
  3. 【回答框架 3】Swift 推荐优先使用 let,因为不可变声明减少意外修改、利于并发安全和编译器优化。类、结构体等引用类型用 let 时,引用不可变但对象内部属性可变,需注意。
  4. 【回答框架 4】当值需在初始化后根据条件赋值或继续更新时,必须选择 var,否则编译报错。例如循环变量、局部累加、视图状态切换。
  5. 【回答框架 5】let 声明的常量配合高序函数(map、filter、reduce)和函数式风格,可提升可读性,但不可盲目使用,核心是变量的可变需求。
  6. 【关键点 1】let 声明常量,var 声明变量,核心差异是能否重新赋值。
  7. 【关键点 2】优先使用 let,减少副作用并提升安全与可预测性。
  8. 【关键点 3】引用类型使用 let 时,引用不可变,但实例内部可变。
  9. 【易错点 1】混淆常量的值不可变与对象内部属性可变,尤其在 struct 和 class 上。
  10. 【易错点 2】误解 let 的常量必须编译期确定,实际上可在运行期初始化。