Skip to content

const深入研究

早在前面的章节,我们就提到使用const创建对象,但是Dart中const创建对象,并不是简单的创建一个对象,而是创建一个常量对象,常量对象是只读的,不能修改。这样的声明在编译器运行时,将被优化从而节省开销。所以在const 和 final之间,优先使用const声明

dart
void main(){
  const String ni = 'World'; // 创建一个常量
  const String hao = 'World'; // 创建一个不同名的等值常量

  print(identical(ni, ni)); // true,内存中只保留了一个对象
}

上面提到的,仅是一个创建常量字符串的方法,但实际中,我们还会创建常量对象,如:

dart
class Person {
  final String name;
  final int age;
  const Person({this.name = "bob", this.age = 18})
}

const student = Person();
const studentb = Person();

 print(identical(student, studentb)); // true,内存中只保留一个对象

所以,const在运行层面,可以极大减少对象的创建运行时内存开销,在组件中亦如此。下面一篇,我们就会说到const constructor。在整个Flutter开发过程中都是性能优化较为重要的一环。

仅用于培训和测试,通过使用本站代码内容随之而来的风险与本站无关。版权所有,未经授权请勿转载,保留一切权利。
ICP备案号:滇ICP备15009214号-13   公安网备:滇公网安备 53312302000061号