美文网首页
dart语法

dart语法

作者: 匠人plus | 来源:发表于2020-02-09 21:18 被阅读0次

    变量

    Object,dynamic
    所有的东西都是对象,所有的对象都继承自Object类。
    dynamic是动态类型。
    Dart 没有 public、private、protected 这些关键字,变量名以"_"开头意味着对它的 lib 是私有的。
    没有初始化的变量都会被赋予默认值 null。
    常量的定义:final、const
    其他数据类型:num,String,bool

    方法

    可选参数[]
    参数有默认值需要{}

        int add(int age1,[int age2]){
          return age1 = (age2!=null?age2:0);
        };
        int add2({int age1,int age2 =1}){
          return age1 = (age2!=null?age2:0);
        };
        print(add(1,2));
        print(add(3));
        print(add2(age1: 4,age2: 3));
    

    默认情况下是单继承,使用with关键词可以多继承,
    如果混合类中有同名方法,最后继承的类的方法会覆盖之前的同名方法,如果当前类中有该方法,以当前类中的为准。
    abstract抽象类

    class Person{
      String name;
      int age;
      Person(this.name, this.age);
      void sayHello(){
        print(toString());
      }
      @override
      String toString() {
        return 'Person{name: $name, age: $age}';
      }
    }
    class Worker extends Person with Eat,Sleep{
      int birthday ;
      Worker(String name, int age,int birthday) : super(name, age){
        this.birthday = birthday;
      }
      void sayHello(){
        print(toString());
      }
      @override
      String toString() {
        return 'Worker{name: $name, age: $age, birthday: $birthday}';
      }
    }
    class Eat{
      void eat(){
        print('eat');
      }
    }
    class Sleep{
      void sleep(){
        print('sleep');
      }
    }
    
        Person person = new Person('hh', 11);
        person.sayHello();
        Worker worker = new Worker('xx', 12, 1234);
        worker.sayHello();
        worker.eat();
        worker.sleep();
    

    异步处理

    void a1() async{
      print('aaaa1');
      Future.delayed(new Duration(seconds: 5),(){
        print('aaaa');
      });
      Future.wait([
        Future.delayed(new Duration(seconds: 2),(){
          print('aaaa2');
        }),
        Future.delayed(new Duration(seconds: 3),(){
          print('aaaa3');
        }),
      ]).then((List results){
          print('finish');
      });
    }
    

    运算符

    ###  /        带小数点
    ###  ~/      带小数点
    ###  ==      判断的值是否相同
    ###  identical  判断应用一样不一样的
    ###  ??=    给null赋值,若这个参数==null,那么就=后面的这个数
    ###   =>    等同{}
    ###  ..        简便实现链式调用
    ###  ?.       值为null的话不报错
    ###  is、is!、as  类型判断,转换类型
    

    相关文章

      网友评论

          本文标题:dart语法

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