美文网首页
Dart 语法

Dart 语法

作者: Abner_XuanYuan | 来源:发表于2023-08-09 09:58 被阅读0次

    1、变量

    /// 定义基本类型 , 使用 var 关键字进行类型定义并初始化时,后续赋值只能是相同类型。
    /// 使用 var 定义,不初始化 , 则后续可以任意类型赋值, 最终类型是 dynamic 类型,dynamic 类型不会检测成员,Object 定义的变量,会检测对象成员。
    var variable = '12’;
    /// 使用确定类型定义变量 , String 类型 , 使用确定类型赋值必须是相同类型
    String name = 'zeno'; 
    

    2、常量

    /// const:声明的常量在编译时确定,不可以更改,必须初始化,特性会传递到子元素。(多个地方对象相同时,内存中只保留一份数据)
    const PI = 3.1454567; 
    
    ///final:声明常量在运行时确定,不可以更改,可以不初始化,但只能赋值一次。
    final DE = 123231313; 
    

    3、运算符

    运算符
    说明:
    1、上表中运算符优先级从上往下依次降低。
    2、判断两个对象是否完全相等,可以使用 identical() 函数。
    3、??= 只有当被赋值的变量为 null 时才会赋值给它。
    4、复合赋值运算符:=、+=、-=、*=、/=、%=、~/=、>>=、<<=、&=、^=、|=。
    5、级联运算符(..)可以实现对同一个对像进行一系列的操作。除了调用函数,还可以访问同一对象上的字段属性。这通常可以节省创建临时变量的步骤,同时编写出更流畅的代码。可以嵌套使用。

    4、流程控制

    if-else、for、while、do-while、break、continue、switch-case、assert、try-catch、throw。

    5、集合

    1、List:
    var ls = List(); // 不推荐
    var ls = <String>[]; // 推荐
    
    Ls2.add(‘one’);
    Ls2.addAll([‘1’,’2’,’3’]);
    Ls2.add(‘two’);
    Ls2.remove(‘one’);
    
    //创建固定长度的 list
     List l1 = List.filled(3, "12345");  //创建长度为 3,内容均为 12345 的 list
      // l1.add("23456");
      // l1.removeLast();
      l1[0] = 99999;
    注:该方式创建的 list 不能修改 list 的长度,可以修改 list 的内容
    
    2、Map:
    var personInfo = Map<String,Object>(); // 不推荐
    var personInfo = <String,Object>{}; // 推荐
    
    personInfo[‘name’] = ‘zeno’;
    personInfo[‘age’] = 18;
    
    3、枚举:

    枚举类型是一种特殊的类,通常用来表示相同类型的一组常量。使用关键字 enum 定义枚举。

    enum ResponseState{
        Success,
        Error,
        Failure
    }
    

    注:
    1、枚举的每一个值都有一个 index 属性,index 从 0 开始计数。
    2、使用枚举的 values 常量,获取所有枚举值列表( list )。
    3、枚举不能被继承,不能创建实例;枚举不能被子类化,混合或实现。

    4、时间:

    DateTime 对象代表某个时刻。时区是 UTC 或者本地时区。

    /// 获取当前时间 2019-03-04 14:48:28.948690
    DateTime.now();
    
    /// 创建一个指定年月日的DateTime对象, 后面可以继续添加时分秒毫秒等
    /// 2019-03-03 00:00:00.000
    DateTime(2019,3,3);
    
    /// 解析日期字符串
    DateTime.parse(‘2019-03-03 20:30:00’);
    
    /// 解析时间戳
    DateTime.fromMillisecondsSinceEpoch(1551616200000);
    

    6、函数

    //函数定义方式
      返回值类型  方法名(参数1,参数1,参数3....){
        //操作
        return 返回值类型
      }
    
    1、可选参数
    String printUserInfo(String userName, [int? age, String? sex]) {
      if (age != null && sex != null) {
        return "用户名: $userName -- 年龄: $age -- 性别: $sex";
      } else if (sex != null && age == null) {
        return "用户名: $userName -- 年龄保密 -- 性别: $sex";
      } else if (age != null && sex == null) {
        return "用户名: $userName -- 年龄: $age -- 性别保密";
      } else {
        return "用户名: $userName -- 年龄保密 -- 性别保密";
      }
    }
    
    //使用
    void main() {
      print(printUserInfo("哈哈"));
      print(printUserInfo("嘻嘻", 22));
      print(printUserInfo("略略", 18, null));
      print(printUserInfo("咯咯", null, "女"));
      print(printUserInfo("叽叽", 23, "男"));
    }
    
    2、默认参数
    String printUserInfo(String userName, [int? age = 10, String? sex = "男"]) {
      if (age != null && sex != null) {
        return "用户名: $userName -- 年龄: $age -- 性别: $sex";
      } else if (sex != null && age == null) {
        return "用户名: $userName -- 年龄保密 -- 性别: $sex";
      } else if (age != null && sex == null) {
        return "用户名: $userName -- 年龄: $age -- 性别保密";
      } else {
        return "用户名: $userName -- 年龄保密 -- 性别保密";
      }
    }
    
    //使用
    void main() {
      print(printUserInfo("哈哈"));
      print(printUserInfo("嘻嘻", 22));
      print(printUserInfo("略略", 18, null));
      print(printUserInfo("咯咯", null, "女"));
      print(printUserInfo("叽叽", 23, "男"));
    }
    
    3、命名参数
    String printUserInfo(String userName, {int? age, String? sex = "男"}) {
      if (age != null && sex != null) {
        return "用户名: $userName -- 年龄: $age -- 性别: $sex";
      } else if (sex != null && age == null) {
        return "用户名: $userName -- 年龄保密 -- 性别: $sex";
      } else if (age != null && sex == null) {
        return "用户名: $userName -- 年龄: $age -- 性别保密";
      } else {
        return "用户名: $userName -- 年龄保密 -- 性别保密";
      }
    }
    
    //使用
    void main() {
      print(printUserInfo("哈哈"));
      print(printUserInfo("嘻嘻", age: 22));
      print(printUserInfo("略略", age: 18, sex: null));
      print(printUserInfo("咯咯", age: null, sex: "女"));
      print(printUserInfo("叽叽", age: 23, sex: "男"));
    }
    
    4、匿名方法
    var unnameFuc = (int age, String name) {
      print("123456 " + "age: $age " + "name: $name");
    };
    
    //使用
    void main() {
      unnameFuc(18,"哈哈");
    }
    
    5、自执行方法
    //该方法会自动执行
    void main() {
    
    //方式一
     (() {
        print("这是个自执行方法");
      })();
    
    //方式二
     ((str) {
        print("str 是形参,内容是: $str");
        print("这是个自执行方法");
      })("这个是传入的参数");
    }
    
    6、闭包
    void main() {
      //闭包
      fn() {
        var a = 111;
        return () {
          a++;
          print(a);
        };
      }
    
      var b = fn();
      b();
      b();
      b();
      b();
      b();
    }
    

    相关文章

      网友评论

          本文标题:Dart 语法

          本文链接:https://www.haomeiwen.com/subject/lxhwpdtx.html