Dart语言里,列表生成的一般方式是使用List的generate构造函数:
new List<int>.generate(3, (int index) => index * index); // [0, 1, 4]
又是匿名函数又是胖箭头,看起来很不优雅。
既然Dart被称为Python+Java/Kotlin,Python那样的列表生成表达式也是有的:
[i*i for i in range(0,3)] #python
[for (var i = 0; i < 3; i+=1 ) i*i]
如果需要枚举的对象是LIst和Set,还可以用for-in迭代,看起来更像了:
[for (var i in [0,1,2] ) i*i]
使用这种写法需要Dart 2.3.0,在Flutter项目中,需要更改pubspec.yaml:
environment:
sdk: ">=2.2.2 <3.0.0"
# 这里是AndroidStudio自动修改的,似乎最低版本大于等于2.2.0即可。