我注意到可以在Dart中创建一个const构造函数.在文档中,它表示该const单词用于表示编译时间常量.
我想知道当我使用const构造函数创建对象时会发生什么.这是一个永远相同且在编译时可用的不可变对象吗?const构造函数的概念实际上如何工作?const构造函数与"常规"构造函数有何不同?
我认为 dart 会使用const构造函数,如果它能够自动执行的话,为了解释这个假设,让我们假设我们有一个已经有const constructor类似的小部件:
class Retry extends StatelessWidget {
const Retry();
}
Run Code Online (Sandbox Code Playgroud)
然后因为 dart“能够推断 const 用法”,接下来的两个代码将意味着并被编译成相同的代码:
1.
Container(
child: Retry()
)
Run Code Online (Sandbox Code Playgroud)
Container(
child: const Retry()
)
Run Code Online (Sandbox Code Playgroud)
这是假设 dart 可以推断他必须使用const声明了该选项的类的构造函数吗?或者不是?我如何证实它?