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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值