美文网首页
2022-01-06 flutter-dart语法

2022-01-06 flutter-dart语法

作者: 忙于未来的民工 | 来源:发表于2022-06-02 14:33 被阅读0次

    变量声明:

    var:可以接受任何类型的变量,一旦定义,后期不可修改。

    所有类型都继承自object,所以object类型可以承接任意类型的值。

    dynamic:是一种特殊的数据类型,在编译时不进行类型检查,运行时才检查,类似于js的弱类型语言

    dynamic 和 Object:可以接受任何类型的值,并且后期可以随意修改,不同之处在于dynamic声明的属性可以调用任何属性或者方法(编译时不检查),而object声明的对象只能调用object上有的属性和方法

    final和const:两个都是声明常量,只能被赋一次值,区别是final是初始化时赋值,而const在编译时就被赋值不能改变。

    常量:const、final

    类似于js的弱引用:var、dynamic、object

    强引用:int、double、String、List、Map

    推荐用法:使用var 定义变量即可,dart会自动进行类型推断

    函数:

    void fn ({var str1 = 1, var str2 = 2, [var dev = 'sss']}) {}

    返回值为空,同时设置默认值,参数包含可选参数

    String fn (var str1 , var str2 , [var dev = 'sss']) {}

    返回值为Sttring,没有默认值,参数包含可选参数

    区别:如果需要默认值,参数需要用大括号括起来,也就一个对象,推荐使用默认值参数

    类:

    只能单继承

    介绍: const VideoPage({Key? key, required this.videoUrl}) : super(key: key); 这段代码是一个构造函数,this.videoUrl 意思是 直接将传过来的 videoUrl 参数赋值给 videoUrl 变量,super(key: key) 意思是 调用父类的构造函数。@override 意思是 重写父类的createState 方法。在该方法中,创建_VideoState实例,该实例成为 VideoPage 的属性

    抽象类:类似于协议,抽象类中定义的方法,在子类中是必须实现的。

    混入:

    mixin 类似于vue的mixin,区别是dart的mixin如果出现同名的方法,不会依次调用,而是直接覆盖。

    Future: 

    异步执行,类似于 promise。据说一模一样。同样也有async、await

    空安全:

    在dart中一切皆对象,我们在给一个值定义时必须初始化,如果不初始化,则需要添加late关键字,意思是后期再初始化,在使用前必须初始化,否则会报错。

    int ? i; // 使用前必须判空,并且在使用的时候需要加 !目的是高诉编译器该变量不是空了。例子如下:

    if(i != null){ print( i! * 8)}

    is、as、is!:判断类型、转类型

    相关文章

      网友评论

          本文标题:2022-01-06 flutter-dart语法

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