1. dart 环境搭建 本地开发dart需要安装Dart Sdk 2. dart 开发工具 Vscode 插件安装dart 插件安装code runner Code Runner 运行我们的文件 右击可以看到code runner命令行就可以看到 未初始化实例变量的默认人值为 “null” ,因为dart是对象。 main() 方法体 dart print打印 变量 dart数据类型 number int double string bool list 数组类型 数组是列表对象 map 对象类型 字符串拼接 $str1 $str2 或者str1 + str2 ------------ 注意不同: dart 定义变量 1. 明确的指定变量的数据类型 String name; int age; double height; 2. 使用 var / dynamic / Object 声明变量 var与dynamic的区别 1.var声明的变量一经赋值后,数据类型就已经确定,不可以接收其他的数据类型, 2.dynamic声明的变量在第一次赋值后,可以继续接收其他的数据类型, dynamic与Object的区别 1.dynamic与Object声明的变量都可以再次接收其他类型的数据类型 2.dynamic声明的变量可以使用变量运行时的属性跟方法,String类型的变量有length属性,所以可以使用,Object声明的变量只能使用Object本身的属性以及方法,Object类型本身不具备lehgth属性,所以print("${message3.lenngth}");这行代码会报错 3. final与const声明常量 ------------ 1. 基础赋值运算符 = ??=( b ??= 23 如果 b为空的话,就把23赋给b ) int b; b ??= 23; print( b ) 2. 复合赋值运算符 += -= *= /= %= ~/= List 数组或集合 a.在dart中,数组是列表对象,所以大多数人称它为列表 b.第一种定义数组的方式 var list = [ 1, 2, 3, 4 ]; c.第二种第一数组的方式 var list = new List(); list.add('掌声','里斯') d. 定义list指定类型 var list = new List<String>(); Map 字典或对象 a.通常来说,Map是键值对相关的对象。键可以是任何类型的对象。每个键必须是双引号 b. 第一种定义map的方式 var obj = { "name": "张三", "age": 20 }; 获取name的方式 obj['name'] c. 第二种定义map的方式 var obj = new Map(); obj['name'] = "张三"; obj['age'] = "20"; List 里面常用的属性和方法 常用属性: length 长度 reversed 翻转 倒叙排序 reversed.toList() //翻转转换成数组集合 isEmpty 是否为空 isNotEmpty 是否不为空 常用方法: add 增加 addAll 拼接数组 indexOf 查找 传入具体值 remove 删除 传入具体值 removeAt 删除 传入索引值 fillRange 修改 insert (index,value); 指定位置插入 insertAll (index,list); 指定位置插入list toList(): 其他类型转换为List数组 join(): List数组转换为字符串 split: 字符串转为List数组 forEach: map中forEach 是value map where: 如同 js filter any: 如同 js some every: 如同 js every Map 1. 常用属性 keys: obj.keys 获取所有key values: obj.values 获取所有values isEmpty: 返回是否为空 如果空数组,返回true,否则false isNotEmpty: 返回不为空 如果不为空,返回true,否则false 2. 常用方法 addAll: 只能 拼接数组 myList.addAll( {} ) remove: 删除 obj.remove( keys ) containsValues: 是否包含某个value obj.containsValues( values ) forEach: map中forEach 是key,value map: where: 如同 js filter any: 如同 js some 只要一个满足条件就返回true every: 如同 js every 每一个都满足条件 才返回true Set 去重 , 是没有顺序且不能重复的集合,所以不能通过索引去获取值 函数 命名构造函数 set get 初始化列表 继承 多态 静态方法 静态属性 static 对象操作符 1. ?条件运算符 2. as 类型转换 var p1 = ""; p1 = new Person( ' 张三 ',20) p1.printInfo(); //会报错 ( p1 as Person ).printInfo(); // 此时不知道p1是什么类型,需要将其转换为 person,方可使用 3. is 类型判断 str is String 判断str是否是字符串类型 4. ..级联操作 Person p1 = new Person( ' 张三 ',20); p1.printInfo(); //之前写法 p1.name = "里斯"; p1.age = 40; p1.printInfo(); //现在写法 p1..name = "李四" ..age=50 ..printInfo(); 类 多态 extends继承 implements接口 implements dart