Dartは非常にシンプルな言語であるが、恐らく初心者が、誤って無限ループに陥ると思われる箇所がいくつかある。 ファクトリーコンストラクター class X { factory X() => new X() ; // 無限ループ } void main() { X x = new X() ; } このコードは、無限ループに陥る。なぜならば、new X()というのは、ファクトリーコンストラクターXを呼び出す式である。これは、つまり自分自身を再帰呼び出ししていることになる。結果として、無限ループになる。 正しいファクトリーコンストラクターの書き方は、別のコンストラクターを呼び出すものである。 class X { X.internal() { } factory X() => new X.internal() ; } クラスのゲッターとセッター クラスのゲッターとセッターは、クラスの変数への簡単な