泛型

  • 泛型就是解决 类 接口 方法的复用性、以及对不特定数据类型的支持(类型校验)

泛型方法

// 同时支持返回 string类型 和int类型  (代码冗余)String getData1(String value) {return value;
}int getData2(int value) {return value;
}// 同时返回 string类型 和 number类型  不指定类型可以解决这个问题getData(value) {return value;
}
  • 使用泛型解决复用问题
// 方式一
T getData<T>(T value) {return value;
}// 方式二
getData<T>(T value) {return value;
}void main() {getData<String>('你好');print(getData<int>(12));
}

泛型类

class PrintClass<T> {List list = new List<T>();void add(T value) {this.list.add(value);}void printInfo() {for (var i = 0; i < this.list.length; i++) {print(this.list[i]);}}
}void main() {PrintClass p = new PrintClass<int>();p.add(12);p.add(23);p.printInfo();// List list=new List<String>(); // List也可以指定类型的// List list=new List<int>();
}

泛型接口

// 定义一个抽象类
abstract class Cache<T> {getByKey(String key);void setByKey(String key, T value);
}class FlieCache<T> implements Cache<T> {@overridegetByKey(String key) {return null;}@overridevoid setByKey(String key, T value) {print("我是文件缓存 把key=${key}  value=${value}的数据写入到了文件中");}
}class MemoryCache<T> implements Cache<T> {@overridegetByKey(String key) {return null;}@overridevoid setByKey(String key, T value) {print("我是内存缓存 把key=${key}  value=${value} -写入到了内存中");}
}void main() {MemoryCache m = new MemoryCache<Map>();m.setByKey('index', {"name": "张三", "age": 20});
}

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.https://serious-lose.notion.site/Dart-13-Day-2ce3513871cd4b99935dd061fea1392a

Dart 13-Day相关推荐

  1. Dart(13)-factory

    一.factory描述 当使用factory修饰一个构造器时,DartVM不会总是创建一个新的对象,而是返回一个在内存中已经存在的对象.比如它可能会从缓存中返回一个已有的实例,或者是返回子类的实例. ...

  2. MobileNeXt: Rethinking Bottleneck Structure for Efficient Mobile Network Design

    论文地址: 摘要:倒残差块是目前移动网络体系结构设计的主流.它通过引入两条设计规则来改变经典的残差块:(1)引入线性瓶颈结构(去掉低纬度输出层后面的非线性激活层,目的是保证模型的的表达能力).(2)反 ...

  3. mahout安装测试

    Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序.Apa ...

  4. Dart 语言不如 Kotlin?这里列了 13 个原因

    [CSDN 编者按]同受 Google 支持,一个是其官方开发的语言--Dart,一个被扶持为 Android 开发的官方语言--Kotlin.放在一起看,Kotlin 对比 Dart 的优越性远不止 ...

  5. iOS代码质量要求_苹果发布 iOS amp; iPadOS 13.1 beta 4 版本;Dart 2.5正式公布;SwiftUI View的生命周期...

    2019-09-19 由于文章内链接无法直接跳转,可点击左下方"阅读原文"查看相关链接 关键词:Dart 2.5.CTR 苹果发布 iOS & iPadOS 13.1 be ...

  6. Dart 2.13 版现已发布

    作者 / Kevin Moore & Michael Thomsen Dart 2.13 版现已发布,其中新增了类型别名功能,这是目前用户呼声第二高的语言功能.Dart 2.13 还改进了 D ...

  7. flutter开发中常用的dart插件

    flutter插件官网地址:https://pub.dartlang.org/packages/ 1. image_picker 一个可以从图库选择图片,并可以用相机拍摄新照片的flutter插件 2 ...

  8. 用Flutter + Dart快速构建一款绝美移动App

    作者 | Wojciech Kuroczycki 译者 | 弯月 来源 | CSDN(ID:CSDNnews) 如今,与前端或移动相关的新框架层出不穷.所有从事Web开发的人都应该熟悉各种目不暇接的新 ...

  9. Flutter学习之Dart语法特性

    一.前言 第一天把Flutter环境搭建了,并简单实现第运行第一个Flutter项目,感觉很不错,一些基本操作和原生体验差不多.用Flutter框架写过App项目的开发者都知道,Flutter是一个使 ...

  10. Dart Way 1

    缘起 Dart 可以同时在 Mobile/Web/Server 三端跑,很像 nodejs,不过没有 nodejs 那么好命 需要一个可以打通 Mobile.Web 的 tk,又不想用 RN的,可以跟 ...

最新文章

  1. DGL RDKit|基于GCN与基于3D描述符的分子溶解度预测模型对比
  2. 小老板,我学的计算机组成原理告诉我半导体存储器都是断电后丢失的,为什么U盘SSD(固态硬盘)没事呢?
  3. HDU 1754线段树
  4. .NET 6 新特性 WaitAsync
  5. 基于CSMA -CA协议的无线星型网络的应用案例介绍
  6. Mybatis 入门之resultMap与resultType讲解实例
  7. localStorage使用总结,页面跳转,保存值
  8. python怎么用numpy_Python:一篇文章掌握Numpy的基本用法
  9. android 进程池 参数,Android 线程池全解析
  10. 大数据分析师高级证书_有大数据分析师资格证书吗?
  11. 计算机wifi怎么打不开,电脑的wifi打不开了怎么办
  12. 5个提供flickr高级图片搜索的网站
  13. 出圈!迅镭激光切割设备亮相热播剧《麓山之歌》
  14. vs code 简易使用教程(前端)
  15. Microsoft Edge浏览器上不了网,其他浏览器可以
  16. 转发文章【我们是怎样一步步的走向平庸的】
  17. python画樱花树教程_Python画樱花树❀
  18. windows下载Android系统源码
  19. 890-git安装教程github创建仓库
  20. OpenCV + CPP 系列(卅三)图像特征提取(Harris角点检测、Shi-Tomasi角点检测、自定义角点检测)

热门文章

  1. php递归简单例子,php递归json类实例
  2. php中提取现在的时间函数,php中时间函数date及常用的时间计算
  3. o oia ospf 路由优先_乾颐堂军哥HCIE课程4-OSPF的3、4、5类LSA以及虚连接和转发地址的理论与实践...
  4. ESDF建图库voxblox的安装编译过程
  5. Java基础---数组内容详解
  6. 2018前端学习总结
  7. ZOJ 3962 Seven Segment Display(数位DP)题解
  8. C++primer 9.3.3节练习
  9. Spark机器学习(3):保序回归算法
  10. android app启动过程