代码之家  ›  专栏  ›  技术社区  ›  WitVault

常数在确定颤振边缘中的作用

  •  3
  • WitVault  · 技术社区  · 6 年前

    在浏览flutter docs中的布局教程时, 我偶然发现

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

    康斯特在这里的目的是什么? 例如

      return Column(
        mainAxisSize: MainAxisSize.min,
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          Icon(icon, color: color,),
          Container(
            margin: const EdgeInsets.only(top: 8.0),  // <-------
          )
        ],
      );
    
    1 回复  |  直到 6 年前
        1
  •  9
  •   Günter Zöchbauer    6 年前

    const 用于编译时常量,只是一个优化。

    无论应用程序执行的频率如何,const都是规范化的 const EdgeInsets.only(top: 8.0) 永远只有一个例子。

    只是 EdgeInsets.only(top: 8.0) (在常量上下文之外,其中 常量 将是默认的)或 new EdgeInsets.only(top: 8.0) 每次执行此代码时都会创建一个新实例,而且垃圾回收也必须在之后处理它。