Dart开发之——泛型

本文深入探讨了 Dart 中的泛型,包括泛型的基本定义、示例,以及泛型约束和泛型函数的使用。通过延后类型指定,泛型提高了代码的灵活性和复用性,确保了数据类型的正确性。示例中展示了如何创建泛型类和函数,并限制参数类型为特定类的子类。泛型约束确保了对象实例化的安全性,而泛型函数则提供了通用的方法签名。
摘要由CSDN通过智能技术生成

一 概述

泛型:把类型明确的工作推迟到创建对象或调用方法的时候

  • 泛型定义
  • 泛型约束及泛型函数

二 泛型定义

2.1 概念

  • 泛型定义:使用<数据类型>
  • 集合中存储的数据类型与定义泛型时要一直,不然会出错

2.2 泛型示例

基本数据类型
 List<String> list = ["1", "2", "3", "4"];
泛型T
main() {
  var print1=printData(1);
  var print2=printData("1");
  print(print1.runtimeType);
  print(print2.runtimeType);
}
class printData<T> {
  T t;
  printData(this.t);
}

三 泛型约束及泛型函数

3.1 说明

  • 泛型约束:又叫泛型受限,使用extends限定,指参数只能取值某个规定类的子类
  • 泛型函数:指函数的参数只能取值某个已知类及其子类

3.2 泛型约束

abstract class Object {}
class Animal extends Object {}
class printClass<T extends Object> {}
main() {
  var printC = printClass<Animal>();
}

3.3 泛型函数

abstract class Object {
  var name;
  Object(this.name);
}
class Animal extends Object {
  Animal(name) : super(name);
}

Object printObj<Object>(Object obj) {
  return obj;
}

main() {
  Object obj = printObj(Animal("狗"));
  print(obj.name);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值