繁体   English   中英

如何使用flutter dart中的相同元素初始化列表?

[英]How to Initialize the List with the same element in flutter dart?

我在 dart 中有一个列表,我想用n个相同元素来初始化列表。 示例:- 用元素5初始化整数列表 4 次。 List<int> temp = [5,5,5,5]; 在 dart flutter 中初始化列表有哪些不同的方法?

我能想到的最简单的方法是: List.filled(int length, E fill, { bool growable: false })

参数是:

  • length - 列表中元素的数量
  • E 填充 - 列表中应包含哪些元素
  • 可增长 - 如果您想拥有动态长度;

所以你可以有:

List<int> zeros = List.filled(10, 0)

这将创建一个包含十个零的列表。

一种认为您需要注意的是,如果您使用对象来初始化列表,例如:

SomeObject a = SomeObject();
List<SomeObject> objects = List.filled(10, a);

上面创建的列表将在所有位置上具有相同的对象 a 实例。 如果你想在每个位置都有新的对象,你可以使用:

List.generate(int length, E generator(int index), {bool growable:true})

就像是:

List<SomeObject> objects = List<SomeObject>.generate(10, (index) => SomeObject(index) ;

或者:

List<SomeObject> objects = List<SomeObject>.generate(10, (index) { 
      SomeOjbect obj = SomeObject(index)
      obj.id= index;
      return obj;
});

这将为列表中的每个位置创建一个新实例。 初始化对象的方式取决于您。

你可以这样试试

List<int>.generate(4, (int index) => 5);

有关更多信息, 请阅读此

这是已接受答案的简化版本。 您可以使用列表文字填充列表生成列表

final literal = [5, 5, 5, 5];
final filled = List.filled(4, 5);
final generated = List.generate(4, (index) => 5);

print(literal);   // [5, 5, 5, 5]
print(filled);    // [5, 5, 5, 5]
print(generated); // [5, 5, 5, 5]

当你只想用相同的值填充列表时, List.filled是不错的选择。 除非你真的想要[5, 5, 5, 5] 在这种情况下,只需使用列表文字。 它易于阅读和理解。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM