Flutter 知识梳理 (Dart) - Dart 中 static, final, const 区别
在Dart中,static
, final
和 const
关键字用于声明静态成员、只读变量和编译时常量。
static
:用于创建类成员的静态版本。这意味着可以在不创建类的实例的情况下访问静态成员。
class MyClass {
static int count = 0;
static void increment() {
count++;
}
}
void main() {
MyClass.increment();
print(MyClass.count); // 输出:1
}
final
:用于创建只能被赋值一次的变量。实例变量可以是 final 但是必须在构造函数中赋值。
class MyClass {
final int count;
MyClass(this.count);
}
void main() {
var instance = MyClass(10);
// instance.count = 20; // 错误:不能再次分配final变量
print(instance.count); // 输出:10
}
const
:用于创建编译时常量,这意味着值在编译时就已知且不能更改。
class MyClass {
static const pi = 3.14;
}
void main() {
print(MyClass.pi); // 输出:3.14
}
注意:const
变量必须是类的静态成员,因为 const 值在编译时需要知道,而非编译时需要知道的值(如类的实例成员)则不能标记为 const。
评论已关闭