美文网首页
Dart高效之操作集合

Dart高效之操作集合

作者: NightRainBreeze | 来源:发表于2019-12-18 18:23 被阅读0次

    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
    
    • 优化where((it) {}forEach((it) {}为函数式, 直接使用链式调用的方式:
    // 输出结果同上
    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

    相关文章

      网友评论

          本文标题:Dart高效之操作集合

          本文链接:https://www.haomeiwen.com/subject/ajgunctx.html