美文网首页
Flutter -- 12.枚举&泛型

Flutter -- 12.枚举&泛型

作者: MissStitch丶 | 来源:发表于2021-11-17 11:09 被阅读0次

    1.枚举

    • 枚举的index从0开始,依次递增
    • 枚举不能赋值
    • 不能添加方法
    /*
    * 1.枚举的index从0开始,依次递增
    * 2.枚举不能赋值
    * 3.不能添加方法
    * */
    enum Direction {
      top,
      left,
      bottom,
      right
    }
    
    testEnum() {
      print(Direction.top.index); //0
      print(Direction.left.index); //1
      print(Direction.bottom.index); //2
      print(Direction.right.index); //3
    }
    

    2.泛型

    • 对不特定数据类型的支持,比如网络请求dio返回数据,PopupMenuItem中的点击回调数据
    • 一般为了给类添加泛型变量或者指定方法参数类型
    1.类的泛型
    • 格式为:class Person<T>{}
    testGeneric() {
      Generic generic = Generic<int>(data: 10);
      generic.showData(); //10
    }
    
    class Generic<T>{
      T? data;
      Generic({this.data});
      showData() {
        print(data);
      }
    }
    
    2.方法的泛型
    testGeneric() {
      //创建时指定了类型
      // Generic generic = Generic<int>();
      // generic.add('1', 2); //2 //加不进去'1', 因为'1'不是int类型
      // generic.add(3, 4); //2, 3, 4 //加进去了3,因为R与T是一个类型
      // generic.add('1', '2'); //由于上面指定了为int, 这里不能传入String,会报错
    
      //创建时不知道类型
      Generic generic1 = Generic();
      generic1.add('1', 2); //1, 2
      generic1.add(3, 4); // 1, 2, 3, 4
      //当类定义时,没有指定泛型时,element is T这个会为true,
    }
    
    class Generic<T>{
      final List<T> list = [];
    
      add<R>(R element, T value) {
        if (element is T) {
          list.add(element);
        }
        list.add(value);
        list.forEach(print);
      }
    
    }
    

    相关文章

      网友评论

          本文标题:Flutter -- 12.枚举&泛型

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