gpt4 book ai didi

dart - 最终和顶级延迟初始化

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

请帮我理解它的确切含义:

引自 "Chapter 2. A Tour of the Dart Language"

A local, top-level, or class variable that’s declared as final is initialized the first time it’s used

这是我的测试代码:

lazyTest(msg) => print(msg);

class Printer{
Printer(msg){
print(msg);
}
final finalClassVariable = lazyTest("final class variable");
}

var globalsAreLazy = lazyTest("top-level");
var lazyInitialized = lazyTest("lazy initialized");

void main() {

final localFinal = new Printer("local final");
var initialize = lazyInitialized;
}

输出:

final class variable
local final
lazy initialized

finalClassVariablelocalFinal 均已初始化,只有 globalsAreLazy 未初始化。 lazyInitialized 按照我的预期在访问时进行了初始化。

最佳答案

类变量是静态字段的另一个名称,因此您需要将 finalClassVariable 设为静态,以使其变得惰性。

局部变量上的文本不正确。它们在执行声明时初始化,而不是在第一次读取时延迟初始化。

具有初始值设定项表达式的非静态类字段在调用构造函数时进行初始化。他们并不懒惰。

关于dart - 最终和顶级延迟初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23511100/

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