我是Dart的新手(来自JS),我想让这个简单的程序有意义。
在程序顶部声明变量并进行设置时,似乎(???)在执行main()之前未进行赋值。见下文。
List<int> a1=[1,2,3];
List<int> b1=new List.from(a1);
void main() {
a1.add(9);
print(a1); // [1,3,9]
print('b1 $b1'); // CONFUSING [1,9] (I expected [1,3])
List<int> a2=[1,3];
List<int> b2=new List.from(a2);
a2.add(77);
print(a2); // [1,77]
print('b2 $b2'); // [1,3],as expected
}
这是因为有一些即时(JIT)代码执行吗?或者,分配工作会在以后发生,例如一些JS陷阱。我确实尝试阅读有关此文档,但无法确定代码执行顺序的任何内容。
我对学习自己的学习方式最感兴趣。因此,任何指向文档适当部分的链接都将受到赞赏。
PS。在JS中,Chrome开发者工具为调试器提供了带有断点的便捷调试器,我通常使用它来检查执行顺序错误。
谢谢。