const在Flutter中定义EdgeInsets中的作用

时间:2018-07-25 08:35:52

标签: dart flutter flutter-layout

在学习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),  // <-------
      )
    ],
  );

1 个答案:

答案 0 :(得分:6)

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

常量已规范化,无论您的应用执行多久const EdgeInsets.only(top: 8.0),总是会有一个实例。

每次执行此代码时,EdgeInsets.only(top: 8.0)(在const为默认值的const上下文之外)或new EdgeInsets.only(top: 8.0)都会创建一个新实例,并且每次都必须进行垃圾回收之后。