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