【发布时间】:2019-12-27 16:25:07
【问题描述】:
当可以使用 const 构造函数时,有一个分析器/lint 检查来警告我:https://dart-lang.github.io/linter/lints/prefer_const_constructors.html
(即使用final a = const A(); 而不是final a = A();)
我想了解优点(对于 const 构造函数,只有一个实例具有相同的常量值)。但为什么这不是默认值?既然 dart 2 中的 new 可以省略,那么他们为什么不将创建一个可以创建 const 的新实例的定义更改为 const 而不是 new?我认为拥有一切const一定有一些缺点?
(例如,在const [A()] 这样的常量上下文中,它实际上与const [const A()] 相同,那么为什么不是到处)?
【问题讨论】:
-
@CopsOnRoad 也许我是盲人,但我仍然找不到在链接的问题/答案或链接的博客文章中使用
const(如果可能)的任何缺点?跨度> -
使用
const的缺点之一是您必须将所有实例变量设为final。 -
@CopsOnRoad 这不是使用
const实例的缺点,只是const构造函数的要求。当我使用具有const构造函数的类(例如flutter 的SizedBox)时,为什么我会想要SizedBox(height: 8)(使用new)而不是const? -
阅读一下this。