美文网首页
Dart知识要点

Dart知识要点

作者: CYC666 | 来源:发表于2019-12-27 12:25 被阅读0次

    1、final 惰性初始化 final time = Date.now();const 在上面这个初始化,报错

    2、''' ''' 、""" """多行字符串

    3、is 关键字判断类型if (str1 is String) ...

    4、~/ 取整,返回int      / 直接除,返回double

    5、var b ??= 23; 如果b不为空,则把23赋给b。var b = a ?? 10;    如果a不为空,则把a赋给b,否则把10赋给b。

    6、Number => String 使用toStringString => Number 使用prase。 int b = Int.prase(str1);

    7、try {} catch (error) {}

    8、数组 List    A、反转数组    var list2 = list1.reversed.toList();    B、数组拼接数组    var list2 = list1.addAll(list3);    C、查找索引    list2.indexOf("PINGG");    找到返回索引,找不到返回-1    D、数组成字符串    String str = list2.join(',');    E、字符串转成数组    Var list2 = str.split(',');

    9、Set 去重复的数组。使用toList()转成数组

    10、字典中是否包含某个键dic.containValue("kkk");

    11、遍历      for (var item in list2) {      }      list2.forEach((value) {       });

    12、筛选      var list1 = list2.where((value) {          return value > 6;      });

    13、只要满足条件就返回true      var b = list1.any((value) {        return value > 6;      });

    14、每个都要满足条件就返回true      var b = list1.every((value) {        return value > 6;      });

    15、方法可以嵌套,但是有作用域限制,跟变量一样

    16、方法的可选参数String grtInfo(String name,[int age,int height]) {if (age != null) {}}

    17、方法的默认参数String grtInfo(String name,[int age = 20]) {

    }

    18、方法的命名参数String grtInfo(String name,{int age}) {

    }区别在调用getInfo("xiaoli", age: 20);

    19、方法可以作为参数传入到另一个方法里

    20、匿名方法var fn = () {};

    21、闭包:方法里面嵌套方法,并且返回方法。可以让变量常驻内存,并且不污染全局。fun1 () {var a = 123;return () {a++;printf(a);};}var b = fun();b();b();

    22、类class Person {String name = "张三";int age = 23;void printInfo(){pringtf("$name-----$age");pringtf("${this.name}-----${this.age}");}}

    23、类的构造方法:实例化类的时候自动调用的方法

    // 默认构造方法,只能写一个Person(String name, int age){this.name = name;this.age = age;}

    // 默认构造函数的简写Person(this.name, this.age);

    // 命名构造函数Person.now(){

    }

    24、私有属性、方法在命名前面加个下划线_即可将它设置为私有。但是在同一个文件里,还是可以访问

    25、get方法,可以通过访问属性的方式去调用方法get area {return a*b;    }

    printf("面积=${p.area}");

    26、set方法set areaHeight (value) {this.height = value;}

    p.areaHeight = 6;

    27、使用构造函数时,默认动态初始化属性。初始化列表Person():name="xiaoli",age=23 {

    }

    28、在属性、方法的声明前面加上static,即可成为静态的属性、方法。       调用的时候,只能通过类名类访问,而不是使用对象去访问。        static String name = '小李';        printf(Person.name);        非静态方法可以访问所有属性,但是访问静态属性时,不使用this。        静态方法无法访问非静态属性、方法

    29、对象操作符        ? 条件运算符        as 类型转换        is 类型判断        .. 级联操作符

            Person p;        p?.showInfo(); // 如果为空,不执行        (p as Person).showInfo();        p..name='lixi'          ..age=40          ..showInfo();

    30、类的继承 extends,可以继承课件的属性和方法,可以重写父类的方法。不能继承构造方法        class Student extends Person {                // 普通构造方法                Student(String name, Int age, String sex) : super(name, age) {                     this.sex = sex;                }                // 命名构造方法                Student(String name, Int age, String sex) : super.now(name, age) {                     this.sex = sex;                }                // 复写父类的方法                @override // 可写可不写                void showInfo () {                    super.showInfo();                }

            }

    31、抽象类(不能被实例化)、抽象方法(子类必须重写)abstract class Animal {eat(); // 抽象方法,不实现。子类必须重写}

    32、接口:定义抽象类,接口的实现类,通过implements继承于抽象类,并实现里面的方法33、一个类实现多个接口class C implements A,B {}

    34、mixins类似多继承的功能,只能集成来自Object,不能有构造函数class C with A,B {}

    35、泛型方法T getData<T> (T value) {return value;}getData<String>('你好');

    36、泛型类List

    37、异步async同步await()必须用在异步操作里

    38、网络请求,引入网络请求库import 'dart:io'

    相关文章

      网友评论

          本文标题:Dart知识要点

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