首页 > 技术文章 > dart 的总结

isuansuan 2022-05-12 17:11 原文

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

 

推荐阅读