三个单引号或双引号可以写多行字符串
main(){ var str1 = "str1"; var str2 = "str2"; print(str1 + " " + str2); print("$str1 $str2"); bool flag1 = true; bool flag2 = false; var list1 = ["张三", "李四", "王五"]; var list2 = new List(); list2.add("kobe"); list2.add("James"); list2.add("Jordan"); print(list2[0] + list2[1]); var person1 = new Map(); person1["james"] = 40; print(person1); var person2 = {"name" : "张三", "age" : 20}; var person3 = new Map<String, int>(); //判断类型使用 is 关键字 var name = "aaa"; if (name is String) { print("string类型"); }else if (name is int) { print("int类型"); }else{ print("其他类型"); } }
字符串操作
数组List常用的属性和方法:
/* List里面常用的属性和方法: 常用属性: length 长度 reversed 翻转 isEmpty 是否为空 isNotEmpty 是否不为空 常用方法: add 增加 addAll 拼接数组 indexOf 查找 传入具体值 remove 删除 传入具体值 removeAt 删除 传入索引值 fillRange 修改 insert(index,value); 指定位置插入 insertAll(index,list) 指定位置插入List toList() 其他类型转换成List join() List转换成字符串 split() 字符串转化成List forEach 遍历 map 元素处理 where 条件筛选 any 任何一个满足条件返回true every 每一个都要满足条件返回true */ void main(){ List myList=['香蕉','苹果','西瓜']; print(myList[1]); var list=new List(); list.add('111'); list.add('222'); print(list); List里面的属性: List myList=['香蕉','苹果','西瓜']; print(myList.length); print(myList.isEmpty); print(myList.isNotEmpty); print(myList.reversed); //对列表倒序排序 var newMyList=myList.reversed.toList(); print(newMyList); List里面的方法: List myList=['香蕉','苹果','西瓜']; myList.add('桃子'); //增加数据 增加一个 myList.addAll(['桃子','葡萄']); //拼接数组 print(myList); print(myList.indexOf('苹x果')); //indexOf查找数据 查找不到返回-1 查找到返回索引值 myList.remove('西瓜'); myList.removeAt(1); print(myList); List myList=['香蕉','苹果','西瓜']; myList.fillRange(1, 2,'aaa'); //修改 myList.fillRange(1, 3,'aaa'); myList.insert(1,'aaa'); //插入 一个 myList.insertAll(1, ['aaa','bbb']); //插入 多个 print(myList); List myList=['香蕉','苹果','西瓜']; var str=myList.join('-'); //list转换成字符串 print(str); print(str is String); //true var str='香蕉-苹果-西瓜'; var list=str.split('-'); print(list); print(list is List); }
集合Set
//Set //用它最主要的功能就是去除数组重复内容 //Set是没有顺序且不能重复的集合,所以不能通过索引去获取值 void main(){ var s=new Set(); s.add('香蕉'); s.add('苹果'); s.add('苹果'); print(s); //{香蕉, 苹果} print(s.toList()); List myList=['香蕉','苹果','西瓜','香蕉','苹果','香蕉','苹果']; var s=new Set(); s.addAll(myList); print(s); print(s.toList()); }
字典map
/* 映射(Maps)是无序的键值对: 常用属性: keys 获取所有的key值 values 获取所有的value值 isEmpty 是否为空 isNotEmpty 是否不为空 常用方法: remove(key) 删除指定key的数据 addAll({...}) 合并映射 给映射内增加属性 containsValue 查看映射内的值 返回true/false forEach map where any every */ void main(){ Map person={ "name":"张三", "age":20 }; var m=new Map(); m["name"]="李四"; print(person); print(m); //常用属性: Map person={ "name":"张三", "age":20, "sex":"男" }; print(person.keys.toList()); print(person.values.toList()); print(person.isEmpty); print(person.isNotEmpty); //常用方法: Map person={ "name":"张三", "age":20, "sex":"男" }; person.addAll({ "work":['敲代码','送外卖'], "height":160 }); print(person); person.remove("sex"); print(person); print(person.containsValue('张三')); }
forEach, map, where, any, every使用
/* forEach 遍历 map 元素处理 where 条件筛选 any 任何一个满足条件返回true every 每一个都要满足条件返回true */ void main(){ List myList=['香蕉','苹果','西瓜']; //for循环 数组遍历 for(var i=0;i<myList.length;i++){ print(myList[i]); } for(var item in myList){ print(item); } //forEach 数组遍历 myList.forEach((value){ print("$value"); }); myList.forEach((value)=>print(value)); List myList=[1,3,4]; List newList=new List(); //for循环 数组中的每个元素增加2倍 for(var i=0;i<myList.length;i++){ newList.add(myList[i]*2); } print(newList); List myList=[1,3,4]; //map 数组中的每个元素增加2倍 var newList=myList.map((value){ return value*2; }); print(newList.toList()); List myList=[1,3,4,5,7,8,9]; //筛选数组中大于5的元素 var newList=myList.where((value){ return value>5; }); print(newList.toList()); List myList=[1,3,4,5,7,8,9]; var f=myList.any((value){ //只要集合里面有满足条件的就返回true return value>5; }); print(f); List myList=[1,3,4,5,7,8,9]; var f=myList.every((value){ //每一个都满足条件返回true 否则返回false return value>5; }); print(f); set var s=new Set(); s.addAll([1,222,333]); s.forEach((value)=>print(value)); //map Map person={ "name":"张三", "age":20 }; person.forEach((key,value){ print("$key---$value"); }); }