Dart 中 const 与 final 的区别

更新日期: 2019-08-01 阅读次数: 11334 字数: 206 分类: Flutter

final

Flutter 官方教程中,有这么一行代码:

final wordPair = WordPair.random();

Final 表明这个变量不能再发生更改,但是这个初始化的值在编译时是不确定的, 只有在运行时,才能确定其值。一旦初始化,则不允许再次发生更改。

例如:

  • HTTP 接口的返回
  • 本地 sqlite 数据库中取出的数据
  • 三方库的随机数据

需要注意的是,如果 final 定义的是个 collection,其子元素不需要是 final 的。

const

顾名思义,const 定义时,需要是个明确的值,不能像 final 那样,运行时才知道是什么值。

例如:

const city = '烟台';

需要注意的是,如果 const 定义的是个 collection,其子元素也需要是 const 的。

参考

https://stackoverflow.com/questions/50431055/what-is-the-difference-in-between-const-and-final-keyword-in-dart

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式