请帮我理解它的确切含义:
声明为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;
}
Run Code Online (Sandbox Code Playgroud)
输出:
final类变量
local final
lazy initialized
无论finalClassVariable和localFinal 初始化,并且只globalsAreLazy不是.lazyInitialized按照我的预期在访问时初始化.
类变量是静态字段的另一个名称,因此您需要使其变为finalClassVariable静态以使其变为惰性.
局部变量的文本不正确.它们在执行声明时初始化,而不是在第一次读取时懒惰.
调用构造函数时,初始化具有初始化表达式的非静态类字段.他们不懒惰.
| 归档时间: |
|
| 查看次数: |
1003 次 |
| 最近记录: |