Please help me to understand what it exactly means:

引用"Chapter 2. A Tour of the Dart Language"条中的

声明为final的局部、顶级或类变量在第一次使用时就被初始化

所以这是我的测试代码:

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;
}

输出:

最终类变量
本地决赛
懒惰已初始化

finalClassVariablelocalFinal都已初始化,只有globalsAreLazy未初始化.lazyInitialized如我所料在访问时初始化.

推荐答案

类变量是静态字段的另一个名称,所以需要将其设置为finalClassVariable个静态变量,这样它才是懒惰的.

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

具有初始值设定项表达式的非静电类字段在调用构造函数时初始化.他们不懒.

Dart相关问答推荐

如何判断一个数字是否是dart中另一个数字的倍数?

您如何在元素中设置自定义元素标签的样式?

如何从 Dart 中的映射中过滤空值

VSCode Flutter Dart 启动慢的建议

Dart中有没有类似python 字典(dictionary) struct ?

可调用云函数错误:响应缺少数据字段

如何在 Dart 中等待单元测试中的异步设置?

我需要在使用之前将我的 Dart 包发布到 pub.dartlang.org 吗?

Dart 包 - 如何隐藏内部方法和类?

判断无状态小部件是否在Flatter中处理

如何在Flutter应用程序中使用套接字?

在 Dart 中向服务器发出多个独立请求的最佳方式

Flutter 中 ListView.builder 中的反向列表

在小部件上显示对话框

Opa vs Dart vs Haxe vs CoffeeScript

dart 如何创建、监听和发出自定义事件?

具有列表的 Null 感知运算符

具有 Maps 的 Null 感知运算符

如何初始化构造函数主体中的最终字段?

如何在 Dart 中连接两个字符串?