2024年Flutter 知识梳理 (Dart) - Dart 中 static, final, const 区别,被阿里面试官征服了
在Dart中,static
, final
, 和 const
关键字被用于不同的目的,以下是它们之间的区别:
static
:用于创建类变量或方法,它们不需要实例化对象就可以访问。final
:用于创建不可变的变量。一旦使用final
关键字初始化了一个变量,就不能再次为这个变量赋值。const
:用于创建编译时常量,即在编译时就已知且不可变的值。const
变量在编译时是常量,并且它们的值不能在运行时更改。
示例代码:
class MyClass {
static int staticVar = 10; // 类变量
final int finalVar = 20; // 最终变量
const MyClass(this.value); // 构造函数中的 const 实例
int getValue() => value; // 实例方法
static int getStaticValue() => staticVar; // 静态方法
}
void main() {
final myClassInstance = MyClass(100);
print(myClassInstance.finalVar); // 输出 20
print(myClassInstance.getValue()); // 输出 100
print(MyClass.staticVar); // 输出 10
print(MyClass.getStaticValue()); // 输出 10
const myConstInstance = MyClass(200); // 编译时常量
print(myConstInstance.getValue()); // 输出 200
}
在上述代码中,staticVar
是一个类变量,它可以在不实例化对象的情况下访问。finalVar
是一个最终变量,它只能被赋值一次。const MyClass(200)
是一个编译时常量,它在编译时就已知,并且在运行时保持不变。
评论已关闭