切记:
在Dart中,没有初始化的变量自动获取一个默认值为null
一切皆对象,对象的默认值为null
var
var表示一个可变的变量,如果无初始值,则可以变成任何类型,但有初始值时,其类型会被锁定且无法修改,
例如:
var a=1;
a='1';
报错:Error: A value of type 'String' can't be assigned to a variable of type 'int'.
object
动态任意类型,编译阶段检查类型
Object和var不同,即使赋了初始值,也同样可以指定别的类型
例如:
Object a = 1;
a = '1';
如果你调用一个本身没有的方法,会直接报红,提醒你编写错误

dynamic
动态任意类型,编译阶段不检查类型
例如:
dynamic a = 1;
a = '1';
调用一个本身没有的方法,不会报错,当运行的时候会抛异常
异常:
Unhandled exception:
NoSuchMethodError: Class 'String' has no instance method 'exx'.
Receiver: "1"
Tried calling: exx()

final和const
- 声明的类型可省略
- 初始化后不能再赋值
- 不能和var同时使用
- const为编译时常量

Comments | NOTHING