Dart 操作集合
final list = [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];
forEach
迭代集合的每一個元素
- demo
list.forEach((String it){
print(it);
});
// 等效于
for (var it in list) {
print(it);
}
- 輸出結果
flutter: 1
flutter: 2
flutter: 3
flutter: 4
flutter: 5
flutter: 6
flutter: 7
flutter: 8
flutter: 9
flutter: 0
where
返回一個新的、滿足條件的集合, 并且與原集合順序保持一致.
- demo
list.where((String it) {
return int.parse(it) % 2 == 0;
}).forEach((String it) {
print(it);
});
- 輸出結果
flutter: 2
flutter: 4
flutter: 6
flutter: 8
flutter: 0
- 優(yōu)化
where((it) {}、forEach((it) {}為函數(shù)式, 直接使用鏈式調(diào)用的方式:
// 輸出結果同上
list.where((it) => int.parse(it) % 2 == 0).forEach(print);
- 或者使用自定義的方法:
list.where((it) => int.parse(it) % 2 == 0).forEach(customPrint);
void customPrint(String it) {
it += ' - ';
print(it);
}
- 輸出結果
flutter: 2 -
flutter: 4 -
flutter: 6 -
flutter: 8 -
flutter: 0 -
whereType
獲取指定類型的集合
var list = [1, "a", 2, "b", 3];
var ints = list.whereType<int>();
- ints
flutter: 1
flutter: 2
flutter: 3
skip
跳過, 會從指定index開始.
- demo
list.skip(3).forEach(print);
- 輸出
flutter: 4
flutter: 5
flutter: 6
flutter: 7
flutter: 8
flutter: 9
flutter: 0
take
會獲取接下來的N個值
- demo
// 跳過前三個, 接下來只取3個值
list.skip(3).take(3).forEach(print);
- 輸出
flutter: 4
flutter: 5
flutter: 6
TODO
其他方法:
-
fold -
join