美文网首页
Dart:List

Dart:List

作者: like26th | 来源:发表于2021-08-02 11:19 被阅读0次

    List的官方API文档:
    https://api.dart.cn/stable/2.13.4/dart-core/List-class.html

    List<E> class:可变集合,使用[]初始化。同时文档建议,使用filled方法进行初始化,其中growable参数代表是否可扩展。

    基本使用:


    dart-增删改查.png

    通过设置length可以清空集合:


    清空集合.png
    其他初始化方式:
    List.empty(),默认growable=false,创建一个长度固定的空数组
    var list = List.empty();
    print(list.length);//0
    list.add(0);//报错
    

    List<E>.general,filled的加强版:允许通过一些函数初始化数据元素


    general.png

    List<E>.from(Iterable elements,{bool growable = true}):
    第一个参数是迭代器,通过一个集合到另一个集合

    void main() {
      List fruit1 = ["apple","pear","peach", "banana"];
      List fruit2 = List.from(fruit1.where((it) => it.length>4));
      print(fruit1);//[apple, pear, peach, banana]
      print(fruit2);//[apple, peach, banana]
    }
    

    List<E>.of(Iterable<E> elements,{bool growable = true}):
    与List<E>.from相比,迭代器参数添加了泛型,其他作用几乎完全一致,二者的区别是

    List<String> foo = new List.from(<int>[1, 2, 3]); // 运行时报错
    List<String> bar = new List.of(<int>[1, 2, 3]); // 编译报错
    

    推荐使用List<E>.of方式,Drat2更倾向于强类型语言,未来from方式可能会被淘汰。参考 https://stackoverflow.com/questions/50320220/in-dart-whats-the-difference-between-list-from-and-of-and-between-map-from-a

    List<E>.unmodifiable(Iterable elements):创建一个无法改变的集合

    void main() {
      List fruit1 = ["apple","pear","peach", "banana"];
      List fruit2 = List.unmodifiable(fruit1);
      fruit2.remove("apple");//Uncaught Error: Unsupported operation: remove
    }
    

    相关文章

      网友评论

          本文标题:Dart:List

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