Flutter Dart 中 static, final, const 区别

3 min read

Flutter Dart 中 static、final 和 const 都是用来定义常量的关键字,它们之间的区别如下:

  1. static:
    静态变量,用于静态位置上,即类级别的变量。它可以存储类的全局状态信息,但不能访问实例的状态信息。通常用于定义工厂构造函数,单例等。

  2. final:
    定义一次赋值的变量,即它们只能被赋值一次。它们不必在声明时初始化,可以在运行时初始化。使用 final 可以让代码更安全,更容易推导出正确的代码行为。例如,当您计算某个值时,为避免重复计算可以使用 final。

  3. const:
    常量值是在编译时已知且不可更改的值,通常用于声明常量数据,如数字和字符串常量。与 final 不同,const 变量是在声明时初始化的,它们的值必须是编译时常量(const 表达式)。

简单来说,static 只需要在类中声明一次,但可以在类的每个实例中进行访问;final 只能被赋值一次,但可以在运行时进行初始化;const 是编译时常量,在声明时必须初始化。