Const 在 Flutter 中定义 EdgeInsets 的作用

Role of Const in defining EdgeInsets in Flutter

在浏览 flutter 文档中的布局教程时, 我遇到了

margin: const EdgeInsets.only(top: 8.0),

这里const的作用是什么? 例如

  return Column(
    mainAxisSize: MainAxisSize.min,
    mainAxisAlignment: MainAxisAlignment.center,
    children: <Widget>[
      Icon(icon, color: color,),
      Container(
        margin: const EdgeInsets.only(top: 8.0),  // <-------
      )
    ],
  );

const 用于编译时间常数,只是一种优化。

Consts 是规范化的,无论您的应用程序执行的频率如何const EdgeInsets.only(top: 8.0)总会有一个实例。

Just EdgeInsets.only(top: 8.0)(在 const 上下文之外,其中 const 是默认值)或 new EdgeInsets.only(top: 8.0) 会在每次执行此代码时创建一个新实例,并且垃圾收集也会有事后处理。