Const在Flutter中定义EdgeInsets的作用

Wit*_*ult 4 dart flutter flutter-layout

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

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),  // <-------
      )
    ],
  );
Run Code Online (Sandbox Code Playgroud)

Gün*_*uer 11

const 是编译时间常量,只是一个优化.

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

只是EdgeInsets.only(top: 8.0)(在const上下文之外const将是默认值)或者new EdgeInsets.only(top: 8.0)每次执行此代码时都会创建一个新实例,之后垃圾收集也必须处理它.

  • 感谢您的简单说明 (2认同)