gpt4 book ai didi

flutter - Dart(Flutter)中的常量构造函数

转载 作者:行者123 更新时间:2023-12-03 03:14:31 24 4
gpt4 key购买 nike

有人可以解释一下,常量构造函数的优点是什么?如果我有一个StatefulWidget

class X extends StatefulWidget {
const X(this.a, this.b,...);
A a;
B b;
...
}
我不明白为什么要使用 const。如果我理解正确, const表示在编译时就知道它,但是它的作用是什么?通常,属性 ab等在编译时未知,但是在运行时不知道,那么 const构造函数的意义何在?

最佳答案

您当前的代码不能具有const构造函数,因为该类中的某些成员变量未标记为finalconst构造函数的目的是,如果在编译时创建具有相同参数的同一类的多个实例(因此所有参数都可以由编译器确定,并且与运行时无关),则它将在内存中共享相同的实例。由于所有成员变量均为final,因此仅允许这样做。
因此,优点是在特定情况下(例如dart:convert中的某些类)潜在的性能和内存改进。但是您必须调用const之类的const MyClass();构造函数才能获得此const行为。另外,仍然可以像普通构造函数一样使用const来获取该类的普通实例。
就个人而言,我将说,如果您的类仅包含指向其他final对象的const变量,那么即使没有使用它,也没有理由不创建const构造函数。但是您通常只能对简单的数据类执行此操作。
但是,也可以不创建const构造函数也完全可以。

关于flutter - Dart(Flutter)中的常量构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62823851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com