I want to create a list of widgets MyWidget(categoryName, color)
from the following two lists.
static const _categoryNames = <String>[
'Length',
'Area',
'Volume',
];
static const _baseColors = <Color>[
Colors.teal,
Colors.orange,
Colors.pinkAccent,
];
In Python I would use a list comprehension with zip to get the result.
my_widget_list = [MyWidget(categoryName, baseColor) for categoryName, baseColor in zip(_categoryNames, _baseColors)]
Googling for a similar method for Dart did not provide any satisfactory solution.
4条答案
按热度按时间dwbf0jvd1#
如果你的目标是创建一个小部件列表(假设你的两个列表有相同数量的元素),你可以尝试
fjaof16o2#
有一个
zip
function frompackage:quiver
,结合 collection-for(Dart相当于Python的列表解析)可以让你大致了解它,Dart没有Python的自动解包功能,所以很不幸你不会得到很好的变量名:sshcrbum3#
“Python” dart 语法
你可以用Control Flow Collections做一些看起来非常类似于Python的事情。
也许少一点“Python”,但更简洁。
具体来说,您应该通读控制流集合:撰写
完成单元测试
为了方便起见,这里有一个可以运行的快速单元测试。
rnmwe5a24#
试着使用IterableZip对 dart 进行收藏/收集:https://pub.dev/documentation/collection/latest/collection/IterableZip-class.html