#わからない事
Classの配列を宣言し、実行したところ同じ場所を参照していました。
Class配列の宣言の方法を教えて頂けないでしょうか?
#ソースコード
Dart
1class ClassTest { 2 ClassTest({this.a = 0, required this.csSub}); 3 late int a; 4// late final int a; 5 late ClassTestSub csSub; 6} 7 8class ClassTestSub { 9 ClassTestSub({this.b = 0}); 10 late int b; 11}
Dart
1 final cs = List<ClassTest>.filled(10, ClassTest(csSub: ClassTestSub())); 2// final cs = List<ClassTest>.generate(10, (index) => ClassTest(csSub: ClassTestSub())); 3 final c = List<int>.filled(10, 0); 4 for(int i=0;i<10;i++){ 5 cs[i].a = i; 6 cs[i].csSub.b = i; 7 c[i] = i; 8 } 9 print('テスト表示'); 10 print(cs[0].a); 11 print(cs[0].csSub.b); 12 print(c[0]); 13 // 想定:a=0, b=0, c=0 14 // 実際:a=9, b=9, c=0(cs[0]を常に参照している?)
#結果
- 想定(やりたかった事)
a=0~9, b=0~9, c=0~9
- 実際(やってみた結果)
a=9~9, b=9~9, c=0~9
#試した事
finalやgenerateを使用してみました、エラーで停止してしまいました。
#環境
Flutter:2.2.3
Dart:2.13.4
回答1件
あなたの回答
tips
プレビュー