Dart中的const和final

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

具体看下面例子(声明类型的地方可以与 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); // 错误

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容