Dart语法学习(4)

一般来说,map是将键和值相关联的对象。键和值都可以是任何类型的对象。每个键只出现一次,但您可以多次使用相同的值。Dart支持map由map文字和map类型提供。

初始化Map方式一: 直接声明,用{}表示,里面写key和value,每组键值对中间用逗号隔开。

// Two keys in a map literal can't be equal. // Map companys = {'Alibaba': '阿里巴巴', 'Tencent': '腾讯', 'baidu': '百度', 'Alibaba': '钉钉', 'Tenect': 'qq-music'}; Map companys = {'Alibaba': '阿里巴巴', 'Tencent': '腾讯', 'baidu': '百度'}; // 输出:{Alibaba: 阿里巴巴, Tencent: 腾讯, baidu: 百度} print(companys);

创建Map方式二:先声明,再去赋值。

Map schoolsMap = new Map(); schoolsMap['first'] = '清华'; schoolsMap['second'] = '北大'; schoolsMap['third'] = '复旦'; // 打印结果 {first: 清华, second: 北大, third: 复旦} print(schoolsMap); var fruits = new Map(); fruits["first"] = "apple"; fruits["second"] = "banana"; fruits["fifth"] = "orange"; //换成双引号,换成var 打印结果 {first: apple, second: banana, fifth: orange} print(fruits);

Map API

// 指定键值对的参数类型 var aMap = new Map<int, String>(); // Map的赋值,中括号中是Key,这里可不是数组 aMap[1] = '小米'; //Map中的键值对是唯一的 //同Set不同,第二次输入的Key如果存在,Value会覆盖之前的数据 aMap[1] = 'alibaba'; // map里面的value可以相同 aMap[2] = 'alibaba'; // map里面value可以为空字符串 aMap[3] = ''; // map里面的value可以为null aMap[4] = null; print(aMap); // 检索Map是否含有某Key assert(aMap.containsKey(1)); //删除某个键值对 aMap.remove(1); print(aMap);

注意事项

map的key类型不一致也不会报错。

添加元素的时候,会按照你添加元素的顺序逐个加入到map里面,哪怕你的key,比如分别是 1,2,4,看起来有间隔,事实上添加到map的时候是{1:value,2:value,4:value} 这种形式。

map里面的key不能相同。但是value可以相同,value可以为空字符串或者为null。

运算符 描述操作符
一元后置操作符   expr++ expr-- () [] . ?.  
一元前置操作符   expr !expr ~expr ++expr --expr  
乘除   * / % ~/  
加减   + -  
位移   << >>  
按位与   &  
按位或      
按位异或   ^  
逻辑与   &&  
逻辑或      
关系和类型判断   >= > <= < as is is!  
  == !=  
如果为空   ??  
条件表达式   expr1 ? expr2 : expr3  
赋值   = *= /= ~/= %= += -= <<= >>= &= ^= = ??=  
级联   ..  
流程控制语句(Control flow statements)

if...else

for

while do-whild

break continue

break continue

assert(仅在checked模式有效)

异常(Exceptions)

throw

抛出固定类型的异常

throw new FormatException('Expected at least 1 section');

抛出任意类型的异常

throw 'Out of llamas!';

因为抛出异常属于表达式,可以将throw语句放在=>语句中,或者其它可以出现表达式的地方

distanceTo(Point other) => throw new UnimplementedError();

catch

将可能出现异常的代码放置到try语句中,可以通过 on语句来指定需要捕获的异常类型,使用catch来处理异常。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/82c011c5fbd719479ecf8402e9575707.html