Flutter 在颤振(飞镖2)中使用const关键字对性能更好吗?

Flutter 在颤振(飞镖2)中使用const关键字对性能更好吗?,flutter,Flutter,我已经阅读了许多文章和const讨论的堆栈溢出问题/答案 人们说,如果创建一个const实例,该实例将只创建一次。如果以后尝试创建相同的实例,将返回旧实例,而不需要新的内存分配。这听起来性能更好。例如: child:Column( 儿童:[ 容器(填充:常量边集。对称(水平:8.0)), 容器(填充:常量边集。对称(水平:8.0)), ] ) 上面的代码只是展示了这个想法。const-EdgeInsets.symmetric(horizontal:8.0))不必在同一个小部件类中 现在,当我读

我已经阅读了许多文章和
const
讨论的堆栈溢出问题/答案

人们说,如果创建一个const实例,该实例将只创建一次。如果以后尝试创建相同的实例,将返回旧实例,而不需要新的内存分配。这听起来性能更好。例如:

child:Column(
儿童:[
容器(填充:常量边集。对称(水平:8.0)),
容器(填充:常量边集。对称(水平:8.0)),
]
)
上面的代码只是展示了这个想法。
const-EdgeInsets.symmetric(horizontal:8.0))
不必在同一个小部件类中

现在,当我读这篇文章时,它有一个相反的例子。我只是在这里复制了那篇文章中的代码块:

//省道2之前
小部件构建(构建上下文){
退回新货柜(
身高:56.0,
填充:常量边集。对称(水平:8.0),
装饰:新盒子装饰(颜色:Colors.blue[500]),
孩子:新的一排(
...
),
);
}
//飞镖2之后
小部件构建(构建上下文)=>
容器(
身高:56.0,
填充:边缘组。对称(水平:8.0),
装饰:盒子装饰(颜色:Colors.blue[500]),
孩子:排(
...
),
);
因此,我是否仍应在Dart 2中添加
const
关键字

开始时,我删除了所有const关键字。但当我读到人们建议为性能添加常量关键字时,我又在添加常量关键字。但是今天,当我偶然读到这篇文章时,我完全困惑了。在这种情况下,Dart 2颤振引擎中的const auto是否会暗示?或者这件事会不会在飘动

在Dart 2颤振引擎中const auto意味着什么

否。Dart 2并不意味着
const
关键字。它删除了多余的部分

Foo()

它们并不等同

另一方面:

const Foo(Bar())

事实上,它们是等价的


因此,是的,
const
关键字在某种程度上仍然是性能优化所必需的

非常感谢你的快速回答。但这并不能回答我真正的问题。我是否应该在flatter中添加const关键字?公告显示我应该删除它。这对性能有影响吗?非常感谢。是的,你应该。事实上,您应该在
分析选项.yaml
上启用
首选构造函数
lint选项。我以为我有
分析选项。yaml
,但当我检查根目录时,默认情况下flatter create不会创建它。。。。您能告诉我推荐的
analysis\u options.yaml
文件对于颤振应该是什么样的吗(一个示例文件)?如果你认为我应该在flutter中添加const,你能不能也更新一下答案?然后我可以把它标记为答案。非常感谢。更新:我找到了这个文件。所以现在不需要给我举个例子。请更新答案,建议在颤振中使用常数(dart 2)。然后我可以把它标记为最终答案。谢谢。
const Foo(Bar())
const Foo(const Bar())