核心: static 修饰
members
, final 修饰variables
, const修饰value
static
static 意味着成员是类变量,⽽不是实例变量。
final
1.在运行时获得值, 且只能单次赋值即一旦赋值final就不能改变
2.声明的变量,不赋值是不可以使用的。
const
1.需要在编译期就能计算出来的数据创建
2.const 创建的控件不会重新构建
3.const 声明构造器就是告诉 Flutter 如果遇到了一个不可变的构造器,这就是一个不可变对象,可以进行复用。注意const 构造器需要字段为final修饰
应用
- 单利实现
class Singleton {
//当你使用factory关键词时,你能控制在使用构造函数时,并不总是创建一个新的该类的对象
//比如它可能会从缓存中返回一个已有的实例,或者是返回子类的实例。
factory Singleton() => _single;//
static final _single = Singleton._init();
Singleton._init(){}
}
- 控件构建
child: const Text('加 const');
VS
child: Text('不加 const');
- const 构造器
final T data;
final Widget child;
const ChangeNotifierProvider({Key key, this.data, this.child})