Dart面试题更新 2026-08-05

在 Dart 语言中,var、final 和 const 在声明变量时的行为有何不同?请分别阐述它们的特点,并举例说明各自适合的使用场景。

技术原理Dart

考察说明

考察对 Dart 语言中变量声明关键字语义差异的理解及场景应用能力。

回答思路

  1. 【回答框架 1】var 用于声明变量,其类型由首次赋值推断,之后不能再赋不同类型的值,但可以重新赋值相同类型的值。var 是运行时变量,声明的值在运行时确定。
  2. 【回答框架 2】final 用于声明只能赋值一次的变量,其值在运行时确定,但只能赋值一次。final 变​​量在第一次使用前必须初始化,适合表示运行时可确定但不应改变的数值,如从外部读取的配置。
  3. 【回答框架 3】const 用于声明编译时常量,值在编译时就必须确定,且必须是常量表达式。const 变量隐式为 final,适合表示固定不变的字面量或数学常量。
  4. 【回答框架 4】场景上,优先用 const 表达编译期常量,用 final 表达运行时一次性赋值,用 var 表达需要重新赋值的局部变量。区分关键在值确定时机与可变性。
  5. 【关键点 1】var 类型推断,可重新赋值但类型固定。
  6. 【关键点 2】final 值运行时可确定,但只能赋值一次。
  7. 【关键点 3】const 值编译时确定,且不能变更。
  8. 【关键点 4】const 是编译期常量,final 是运行时常量。
  9. 【易错点 1】误认为 var 可改变类型。
  10. 【易错点 2】混淆 final 与 const 的初始化时机。
  11. 【易错点 3】对 const 要求编译时常量表达式,错误使用运行时函数。