上QQ阅读APP看书,第一时间看更新
2.1.2 变量与常量
变量定义
和大多数现代编程语言一样,Dart语言支持类型推断,但不同于JavaScript或Python。Dart是强类型的编程语言。定义变量时可以使用var关键字来替换变量类型,示例如下:
---->[day02/02/var_const_final.dart]---- main(){ var age = 18; var isMan = true; var name = '张风捷特烈'; var languages = ['Java', 'Dart', 'Python', 'C++', 'Kotlin']; var languages2 = {'Java', 'Dart', 'Python', 'C++', 'Kotlin',"Java"}; var map = {1: 'one', 2: 'two', 3: 'three'}; var className = #Person; }
提示:如果只是用var声明变量,未赋值,那么该变量的数据类型是可以修改的(如下代码左侧所示)。如果声明的同时进行赋值,那么该对象的类型就是固定的,不可修改(如下代码右侧所示)。原因如下图:如果只声明,变量的类型是dynamic,即可变的;当声明并赋值时,它的类型就能被固定。
常量定义
常量就是一旦确定就不能再改变的值,在Dart语言中,用const关键字或final关键字定义常量。当对final或者const修饰的量再进行赋值时就会报错,如下所示:
final PI = 3.14159265;//final定义常量 PI=4;// ERROR: 'PI', a final variable, can only be set once. const Pi = 3.14159265;//const定义常量 Pi=4;// ERROR: Constant variables can't be assigned a value.
两者的区别在于const是编译期的常量,final是运行时常量。也就是在运行期间才能获取到的常量必须用final定义,如下所示:
final f = DateTime.now(); // OK const c = DateTime.now(); // ERROR //Const variables must be initialized with a constant value.