Flutter笔记--泛型

      这一节主要介绍泛型,泛型通俗的讲就是解决类的接口, 方法, 复用性, 以及对不特定数据类型的支持(类型校验),再通俗一点,就是对于类型的约束.在Dart中,使用泛型的作用: 1 简化相同的逻辑 2 限制可使用的类型, 简单看一下栗子:

使用星号* 打印实心直角三角形

void printTrangle() {
  for(var i = 0;i<5;i++) {
    int j =0;
    var str = "";
    for(j = 0;j<2*i+1;j++) {
      str += "*";
    }
    print("$str");
  }
}

如果要换成加号,减号 那就得多写几个函数,如果用以下方式就不用:

class printTriangle<T> {
  void printUserChar (T char) {
    for(var i=0;i<5 ;i++) {
      int j =0;
      var str = "";
      for(j = 0;j<2*i+1;j++) {
        str += char as String;
      }
      print("$str");
    }
  }
}

分析: 我们用T取代String来充当类型占位符。

限制泛型类型范围

class printTriangle<T extends String> {
  void printUserChar (T char) {
    for(var i=0;i<5 ;i++) {
      int j =0;
      var str = "";
      for(j = 0;j<2*i+1;j++) {
        str += char as String;
      }
      print("$str");
    }
  }
}

分析:如果在调用它的位置传入了非String类型的变量,就会出现编译错误而无法运行,杜绝类在运行时异常的发生。

猜你喜欢

转载自blog.csdn.net/ljt2724960661/article/details/114794737