【发布时间】:2019-10-17 04:42:33
【问题描述】:
我已经阅读了很多关于 const 讨论的文章和 Stack Overflow 问题/答案。
人们说如果你创建一个 const 实例,该实例只会被创建一次。如果您稍后尝试创建相同的实例,则将返回旧实例并且不需要新的内存分配。这听起来在性能上更好。例如:
child: Column(
children: <Widget>[
Container(padding: const EdgeInsets.symmetric(horizontal: 8.0)),
Container(padding: const EdgeInsets.symmetric(horizontal: 8.0)),
]
)
上面的代码只是展示了这个想法。 const EdgeInsets.symmetric(horizontal: 8.0)) 不必在同一个小部件类中。
现在,当我阅读official Dart 2 announcement 时,它有一个相反的例子。我只是在这里复制那篇文章中的代码块:
// Before Dart 2
Widget build(BuildContext context) {
return new Container(
height: 56.0,
padding: const EdgeInsets.symmetric(horizontal: 8.0),
decoration: new BoxDecoration(color: Colors.blue[500]),
child: new Row(
...
),
);
}
// After Dart 2
Widget build(BuildContext context) =>
Container(
height: 56.0,
padding: EdgeInsets.symmetric(horizontal: 8.0),
decoration: BoxDecoration(color: Colors.blue[500]),
child: Row(
...
),
);
因此,我是否仍应在 Dart 2 中添加 const 关键字?
一开始,我删除了所有的 const 关键字。但是当我读到人们建议添加 const 关键字以提高性能时,我正在添加 const 关键字。但是今天,当我偶然看到这篇文章时,我完全糊涂了。对于这种情况, const auto 是否会在 Dart 2 Flutter 引擎中暗示?或者这在 Flutter 中是否重要?
【问题讨论】:
标签: flutter