Dart:修饰符 static final const的区别

2019-07-10  本文已影响0人  谢伟浩

static:

用于修饰成员变量,这个变量是属于类的,而不是属于对象的,除此之外没有其他别的含义了,static修饰符的使用方式和Java类似。 static变量直到运行期被使用时才会实例化。

final:

用于修饰变量,表示单赋值(single-assignment),使用final修饰的变量必须进行初始化,一旦被赋值之后,不能够再次被赋值,否则编译会报错。跟java的区别是:final不能用来修饰类和方法。

const:

表示对象的状态完全可以在编译期间确定,并且完全是不可变的。

class Man {

  final int age;
  const Man({this.age});
//  static const m = const Man(age: 7);
}

main() {

//  const Man m0 = new Man(age: 7); error
  const Man m1 = const Man(age: 19);
  const Man m2 = const Man(age: 20);
  const Man m3 = const Man(age: 19);

  print(m1 == m2); //false
  print(m1 == m3); //true
}
上一篇下一篇

猜你喜欢

热点阅读