来吧 Dart 我爱你 (3) List Set 和 Map

作者 : 开心源码 本文共1531个字,预计阅读时间需要4分钟 发布时间: 2022-05-12 共234人阅读

dart

我们学习一门语言少不了集合类型,每种语言都有Array 一个有序的集合。

List

创立集合
  var list = [1, 2, 3];  List<int> list1 = [1, 2, 3];

在 Dart 可以定义一个包含多个类型元素的数组。

  var list2 = ["angular", 12, true];  for (var item in list2) {    print(item);  }

spread 操作符

void main() {  var list = [1, 2, 3, 4, 5];  var list2 = [0, ...list];  print("the length of list2 is ${list2.length}");}
  var list;  var list2 = [0, ...list];  print("the length of list2 is ${list2.length}");
  • 假如 list 没有定义使用 spread 操作符将数组 list 元素增加到 list2,但是假如 list 没有初始化也就是 null 就会在编译报错。
Exception has occurred.NoSuchMethodError: The getter 'iterator' was called on null.Receiver: nullTried calling: iterator

我们可通过 ?符号来判断 list 能否为 null 假如是 null 就不使用操作符。这个如同在 kotlin 中看见。

void main() {  var list;  var list2 = [0, ...?list];  print("the length of list2 is ${list2.length}");}

输出

the length of list2 is 1
遍历
  for (var item in list1) {    print(item);  }

在 Dart 2.3 引入 collection if 通过判断isAuthorized的值来决定能否增加元素。感觉这个不错呀。第一次见到

  bool isAuthorized = false;  var nav = ["home", "about", if (isAuthorized) "setting"];  for (var menu in nav) {    print(menu);  }

也可以通过 collections for 来将一个集合元素增加到另一个集合中。

  var listOfInts = [1, 2, 3];  var listOfStrings = ['#0', for (var i in listOfInts) '#$i'];  for (var item in listOfStrings) {    print(item);  }

Set

Set 是一个无序的去重的集合。这个应该不难了解吧

void main() {  var tuts = {"angular", "vue", "angular", "react"};  for (var tut in tuts) {    print(tut);  }}

从输出可以看到已经去重了。

angularvuereact

map

angularvuereact

创立一个 Map,Map 就是一个元素以键值对形式的集合。

var tuts = {'angular': "zidea", "vue": "tina", "koa": 'zidea'};
void main() { var tuts = {'angular': "zidea", "vue": "tina", "koa": 'zidea'}; print("the autor of angular is ${tuts['angular']}");}

增加元素

tuts['express'] = 'zidea'

假如定义 const 表示 tuts 是不可变的,这也是函数式编程的基石。这样我们就无法改变tuts

var tuts = const{'angular': "zidea", "vue": "tina", "koa": 'zidea'};

developer

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 来吧 Dart 我爱你 (3) List Set 和 Map

发表回复