[英]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 })
。
参数是:
所以你可以有:
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;
});
这将为列表中的每个位置创建一个新实例。 初始化对象的方式取决于您。
这是已接受答案的简化版本。 您可以使用列表文字、填充列表或生成列表:
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.