Dart中的const和final

2018-09-25  本文已影响0人  RangoFu

相同点
必须初始化(初始化时机可能会不同,看不同点),初始化后都是只读的,不可变

具体看下面例子(声明类型的地方可以与 const 或 final 组合使用)

var a= 1;

const a= 1;

final a = 1;

int a = 1;

const int a = 1;

final int a = 1;

不同点
const表示编译时常量,即在代码还没有运行时我们就知道它声明变量的值是什么;而final不仅有const的编译时常量的特性,最重要的它是运行时常量,并且final是惰性初始化,即在运行时第一次使用前才初始化
const a = 8;

const b = false;

const c = a;

const d = 5 * 3;

final x = new DateTime.now(); // 正确

const x = new DateTime.now(); // 错误

final y = sin(90); // 正确

const y = sin(90); // 错误

上一篇 下一篇

猜你喜欢

热点阅读