Dart 语法 | 说明 |
---|---|
var | 类似于JavaScript中的var;最大的不同是Dart中var变量一旦赋值,类型便会确定,则不能再改变其类型 |
Object | Object 是dart所有对象的根基类,也就是说所有类型都是Object的子类(包括Function和Null),所以任何类型的数据都可以赋值给Object声明的对象 |
dynamic | dynamic与var一样都是关键词,声明的变量可以赋值任意对象; 而dynamic与Object相同之处在于,他们声明的变量可以在后期改变赋值类型; dynamic与Object不同的是,dynamic声明的对象编译器会提供所有可能的组合, 而Object声明的对象只能使用Object的属性与方法, 否则编译器会报错 |
final 和 const | 一个 final 变量只能被设置一次,两者区别在于:const 变量是一个编译时常量,final变量在第一次使用时被初始化;被final或者const修饰的变量,变量类型可以省略 |
函数 | Dart是一种真正的面向对象的语言,所以即使是函数也是对象,并且有一个类型Function; 函数可以赋值给变量或作为参数传递给其他函数,这是函数式编程的典型特征。 |
可选的位置参数 | 用[String str_name] 标记为可选的位置参数 |
可选的命名参数 | enableFlags(bold: true, hidden: false); |
Future 异步函数 | Future与JavaScript中的Promise非常相似;delayed、then、catchError、whenComplete、wait |
async、await | async用来表示函数是异步的,定义的函数会返回一个Future对象,可以使用then方法添加回调函数。 await 后面是一个Future,表示等待该异步任务完成,异步完成后才会往下走 |
Stream | 和Future 不同的是,它可以接收多个异步操作的结果(成功或失败); |