Skip to main content

开发语言•Dart

语言优势

  • 简单性:Dart 是一门简单的静态语言,Java、Go 的语法相对复杂
  • 可扩展性:适应 Flutter 的需要
  • 高效性:Dart 代码最终编译成二进制指令代码
  • 双模式编译
    • 开发期间:Just In Time(即时编译) ,更快的代码重载,但会有些卡顿
    • 打包后:Ahead Of Time(事前编译),编译成二进制代码,加载和执行都非常快

语言特点

  • 强类型语言
  • 支持函数式编程
  • Dart VM(虚拟机)在内存回收和吞吐量都进行了反复的优化
  • 相比于 Javascript,不支持反射,不支持动态创建函数

变量声明

  • var:一旦赋值,类型确定,不能再改变类型

  • Object:是所有对象的根基类(包括 Function 和 Null)

  • dynamic:声明的对象编译器会提供所有可能的组合

    • Object 和 dynamic 声明的变量都可以赋值任意对象,且后期可以改变赋值的类型
  • const:是一个编译时常量,不可调用属性的内部方法

  • final:第一次使用时被初始化

    • const 或 final 修饰的变量,变量类型可以省略
  • null-safety(空安全)

    • int? j; 可空类型,使用前必须判空
    • late int k; 预期变量不为空,但不能确定初始值
  • late:延迟变量的初始化,直到变量首次被访问

函数

  • 函数默认返回值类型 dynamic
  • 函数能作为参数传递

mixin

  • 通过 with 关键字可以组合成不同的类

异步

  • Future 类似 Javascript 中的 Promise
  • async/await 直接采用 Javascript 中的用法

Stream

  • 处理连续的异步事件,可以一次生成多个值
    • 例如,从网络或用户输入中接收数据