在 Dart 中,'const' 参数有什么区别?

Dev*_*sen 4 dart flutter

padding: const EdgeInsets.all(25.0)
padding: EdgeInsets.all(25.0),
Run Code Online (Sandbox Code Playgroud)

Dart demo中,大部分padding或者child加const,有什么优化吗?

https://docs.flutter.io/flutter/widgets/Padding-class.html

小智 8

让我们考虑一下我们有这三行代码:

1.const EdgeInsets.all(25.0)
2.const EdgeInsets.all(25.0)
3.const EdgeInsets.all(25.0)
Run Code Online (Sandbox Code Playgroud)

1. 在第一行 EdgeInsets 类创建一个新对象并为其分配左、上、右、下的值并渲染给定的小部件,然后创建一个具有相同值的常量对象进行渲染,如果它在另一个地方找到。

2. 嘿,已经有一个具有这个值的对象,所以渲染它。

3. 嘿,已经有一个具有这个值的对象,所以渲染它。

现在,让我们考虑这些场景:

1.EdgeInsets.all(25.0)
2.EdgeInsets.all(25.0)
3.EdgeInsets.all(25.0)
Run Code Online (Sandbox Code Playgroud)

1. 在第一行,EdgeInsets 类创建一个新对象并为其分配左、上、右、下的值,并渲染给定的小部件。

2. 在第二行,EdgeInsets 类创建一个新对象并为其分配左、上、右、下的值并呈现给定的小部件。

3. 在第三行,EdgeInsets 类创建一个新对象并为左、上、右、下分配其值并呈现给定的小部件。

因此,通过使用 const,我们可以减少每次重新创建同一个对象并使用它的时间,相反,我们创建一个对象,然后在每次需要时重用它。