如何在 dart 列表中复制重复项目?

4 dart flutter

我的意图是我想在列表中列出一个类的 5 个实例

final List<Ball> _ballList =[Ball(),Ball(),Ball(),Ball(),Ball(),]
Run Code Online (Sandbox Code Playgroud)

相反,我想要类似的东西

final List<Ball> _ballList =[Ball() * 5]
Run Code Online (Sandbox Code Playgroud)

Arh*_*tvi 8

使用generate()应该有帮助
例如,

class Ball{
  String color;
}

void main() {
  List<Ball> ballList = new List<Ball>.generate(5,(i)=>Ball());
  for(int i=0;i<ballList.length;i++) {
    print(ballList[i]);
  }
}
Run Code Online (Sandbox Code Playgroud)


jam*_*lin 5

对于 Dart 2.3 或更高版本,您可以使用collection-for

final List<Ball> _ballList = [
  for (var i = 0; i < 5; i += 1) Ball(),
];
Run Code Online (Sandbox Code Playgroud)

请注意,上面的代码将生成List5 个不同实例的Ball,我假设这就是您想要的。在支持像您的示例这样的构造的语言(例如Python)中,您会得到一个包含同一实例[Ball() * 5]的5个元素的列表。如果想要相同的实例,那么您可以使用构造函数List.filled

final List<Ball> _ballList = List<Ball>.filled(5, Ball());
Run Code Online (Sandbox Code Playgroud)