for (var foo in bar) print(foo);
Run Code Online (Sandbox Code Playgroud)
for (final foo in bar) print(foo);
Run Code Online (Sandbox Code Playgroud)
这两者之间的性能有什么区别吗?或者唯一的区别是“避免意外重新分配”?
编辑:
prefer_final_localsfinal
提到编译器在使用时执行优化。在这里适用吗?dart2js
输出与上面 2 个片段匹配。不确定dart2native
。
foo
唯一的区别是,如果使用 ,则可以重新分配该值var
。
for (var foo in bar) {
foo = foo + 5;
print(foo);
}
Run Code Online (Sandbox Code Playgroud)
使用 Final 这样做是行不通的
for (final foo in bar) {
foo = foo + 5; //Error: The variable foo can be set only once
print(foo);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1730 次 |
最近记录: |