0
這是一流的球是來自飛鏢樣本(時鐘採樣)的一部分:構造混亂
DivElement root
num lastTime;
List<Ball> balls;
球():
lastTime = new Date.now().millisecondsSinceEpoch,
balls = new List<Ball>() { \\I do not understand here, why use
root = new DivElement(); \\ List<Ball>(){...}
document.body.nodes.add(root);
makeAbsolute(root);
setElementSize(root, 0.0, 0.0, 0.0, 0.0);
}
因爲我不明白,我改變構造函數:
Balls() {
lastTime = new Date.now().millisecondsSinceEpoch;
balls = new List<Ball>() ;
root = new DivElement();
document.body.nodes.add(root);
makeAbsolute(root);
setElementSize(root, 0.0, 0.0, 0.0, 0.0);
}
該應用程序仍然有效。構造函數Ball():
and Ball(){}
之間有什麼不同嗎?謝謝。
對不起,我的英語。
謝謝。你的答案總是很好。 – duy
':'後面的代碼被稱爲_initializer list_,它實際上非常重要。這就是Dart如何修復Java或C#與構造函數之間的初始化問題 - 在構造函數體內,當實例尚未完全初始化時,可以將此'this'傳遞給任何其他代碼。這就是你如何觀察Java中的'final'字段以獲得_two_值。這就是爲什麼初始化器列表如此重要:Dart要求你初始化初始化器列表中的所有'final'字段(除非它們在其聲明中「inline」初始化),這可以防止這些問題。 – Ladicek