Dart 中 const 与 final 的区别

文章目录

    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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式