我正在学习Flutter(大部分来自Youtube),而在学习它的同时,我看到许多教练使用了这样的陈述,
final SomeClass someVariable = const SomeClass(withSomeValue);
令我烦恼的是,为什么要在赋值运算符之后使用const
关键字,因为我们已经将其设为final
并且我已经知道final
关键字用于定义一个常数那么const
在这里表示什么?
答案 0 :(得分:3)
在这里,对象分配仅发生一次,因此对性能有好处。
final Test test = const Test();
final Test test2 = const Test();
这里发生了两次。
final Test test = Test();
final Test test2 = Test();
答案 1 :(得分:2)
这是对不可变对象进行的内存优化。
const
个实例被共享:
final a = const Whatever();
final b = const Whatever();
print(identical(a, b)); // true
在此代码段中,a
和b
共享相同的对象实例,因此只能分配一次。