本节目标

  • 常量的定义方式
  • final const 的区别

环境

  • Dart 2.0.0

定义

类型声明可以省略

1
2
3
4
5
final String a = 'ducafecat';
final a = 'ducafecat';

const String a = 'ducafecat';
const a = 'ducafecat';

初始后不能再赋值

1
2
3
4
5
final a = 'ducafecat';
a = 'abc';

const a = 'ducafecat';
a = 'abc';

不能和 var 同时使用

1
2
final var a = 'ducafecat';
const var a = 'ducafecat';

const 赋值 申明可省略

1
2
const List ls = const [11, 22, 33];
const List ls = [11, 22, 33];

区别

需要确定的值

1
2
3
final dt = DateTime.now();

const dt = const DateTime.now();

不可变性可传递

1
2
3
4
5
final List ls = [11, 22, 33];
ls[1] = 44;

const List ls = [11, 22, 33];
ls[1] = 44;

内存中重复创建

1
2
3
4
5
6
7
final a1 = [11 , 22];
final a2 = [11 , 22];
print(identical(a1, a2));

const a1 = [11 , 22];
const a2 = [11 , 22];
print(identical(a1, a2));

代码

参考


© 猫哥

https://ducafecat.tech