美文网首页
Dart语言

Dart语言

作者: Shineyok | 来源:发表于2021-12-01 16:31 被阅读0次

    Dart语言概览

    • 一切皆对象,所有对象均继承自Object
    • 虽然Dart是强类型语言,但是变量类型是可选的,因为Dart可以自动推断变量类型
    • Dart支持泛型,List
    • Dart支持顶层方法,也可以支持类方法或者对象方法,同时也可以在方法内部创建方法
    • Dart支持顶部变量,也可以支持类变量或者对象变量
    • Dart没有public、private等关键字,如果以(_)开头则代表私有变量

    Dart定义变量

    • 明确声明:变量类型 变量名称 = 赋值(定义的变量可以修改值,但是不能赋值其他类型)
    • 类型推导:var/dynamic/const/final 变量名称 = 赋值(实际开发过程中不推荐使用dynamic,因为通过它定义的变量会关闭类型检查,即如有错误,编译期不报错,运行期直接crash)const编译期确定内容、final赋值期间确定
    • 变量声明:var可以接收任何类型,但是一旦赋值类型便会确定。dynamic和object都可以在后期改变赋值类型。dynamic声明的对象编译器会提供所有可能的组合,而object声明的只可以使用object的属性和方法,所以dynamic容易引起运行时错误。

    Dart数据类型

    • 整数int、浮点数double,可表示范围取决于运行平台
    • 字符串转数字 int.parse('111')
      数字转字符串num.toString()
    • bool取值true和false,Dart不能判断非0即真或非空即真
    • 字符串类型
    • 单引号或者双引号创建字符串 三个单引号或者双引号表示多行字符串 ${}拼接
    • Dart集合类型List数组/Set集合/Map字典

    Dart函数 {}命名可选参数[]位置可选参数 只有可选参数才可使用默认值

    • 词法作用域(({}))
    • 所有函数都会返回值,如未指定则返回null

    Dart运算符

    • 除、整除、取模(/、~/、%)
    • ??=赋值 相当于为null判断的三目运算符
    • 条件运算符 expr1??expr2,expr1是null则返回expr2,否则返回expr1
    • 级联语法为.. 表示同一对象连续操作

    类和对象

    • class关键字定义类
    • Dart通常可以省略this但是有命名冲突时不可省略

    Dart异步:Dart是单线程的

    • Dart中存在事件队列以及微任务队列,微任务队列优先级高于事件队列
    • 外部任务事件在事件队列中,如IO、计时器、点击、绘制事件等
      微任务来源于Dart内部
    • Dart单线程执行代码顺序:
    • Dart入口为main函数,所以优先执行main函数代码
    • main函数执行完毕后启动事件循环,启动后加载执行队列中任务
    • 先进先出顺序执行微任务队列
    • 先进先出顺序执行事件队列任务

    相关文章

      网友评论

          本文标题:Dart语言

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