Dart中的细节之变量

发布于 17 天前  0 次阅读


切记:

在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';

如果你调用一个本身没有的方法,会直接报红,提醒你编写错误

20210711220926513

dynamic

动态任意类型,编译阶段不检查类型
例如:
dynamic a = 1;  
a = '1';

调用一个本身没有的方法,不会报错,当运行的时候会抛异常
异常:
Unhandled exception:
NoSuchMethodError: Class 'String' has no instance method 'exx'.
Receiver: "1"
Tried calling: exx()

20210711220959769

final和const

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


平平无奇的大学在读本科生