Dart笔记(2):常量(final和const)

final和const共同点

1.类型声明可以省略

final String a = 'abc';
final a = 'abc';

const String a = 'abc';
const a = 'abc';

2.初始化后不能再赋值

final a = 'aaa';
a = 'abc';    //错误

const b = 'bbb';
a = 'abc';    //错误

3.不能和var同时使用

final var a = 'abc';//错误
const var b = 'abc';//错误

final和const区别

1.类级别的常量,通常用 static const

2.const可以使用其他const常量的值来初始化其值

const width=100;
const height=50;
const square=width*height;

3.需要确定的值

final dt = DateTime.now();//正确,运行时有确定的值

const dt = const DateTime.now();//错误,需要编译时有确定的值

4. 不可变性可传递

const的不可变性是可传递的,final不是

final List ls = [11, 22, 33];
ls[1] = 44;//正确

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

5.内存中重复创建

值相同时final在内存中重复创建,const会引用相同值

final a1 = [11 , 22];
final a2 = [11 , 22];
print(identical(a1, a2));//false

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容