和其他语言一样,Dart语言有变量和常量,下面介绍Dart的变量和常量的定义和用法。
变量可以分为不指定类型和指定类型。前者就像用JavaScript一样,后者则像用Java一样。
不指定类型有两种方法,如代码示例5-2所示。
代码示例5-2 不指定类型
不指定类型的变量只是一个容器,什么数据都可以往里面装,因此用于存储一些过渡的临时值非常方便。
指定类型也有两种方案,需要注意的是采用关键字var定义变量时是否在初始化时赋值,这会导致在后续能不能修改这个变量的类型。
代码示例5-3 指定类型
和其他语言的初始值不一样,Dart语言中的所有变量的默认值都是null。例如一个bool,在其他语言中初始值一般是false,而在Dart语言中,它是null。所幸的是,最新版本会有non-nullable功能,没赋值时会告诉开发者需要去初始化。
如果不打算更改变量的值,则可以使用final或者const定义。一个final变量只能被设置一次,而const变量是编译时常量,定义时必须赋值。
如果之前使用JavaScript进行开发,对于const还是有些需要注意的地方,因为它是真正的不变,如代码示例5-4所示。
代码示例5-4 chapter05/01/const.dart
final相对来讲就比较简单了,除了只能赋值一次的要求,它更像JavaScript下的const,而且比它还宽松(没有强制要求定义时赋值),如代码示例5-5所示。
代码示例5-5 chapter05/01/final.dart