1 - Dart 的变量 & 常量

变量 & 常量

变量

变量分 不指定类型 和 指定类型。前者就像你用 javaScript 一样,后者则像你用 typeScript 一样。

重点: 和其他语言的初始值不一样,Dart 的所有变量默认值都是 null 。比如一个 bool ,在其他语言初始值一般是 false , 而在 dart 中,它是 null 。所幸的是,最新版本会有 non-nullable 功能,没赋值都使用的值都会告诉你需要去初始化。

常量

有人认为 const, final 都应该是常量,其实这两个还是有点区别的:const 是需要在定义的时候就赋值,而 final 则是只能赋值一次。因此我更加偏认为 const 才是真正的常量,而 final 正如它的字面意思一样:最后一次赋值。

如果你之前是使用 javascript , 对于 const 你还是有些需要注意的,因为它是真正的不变。

// const String a;
const String a = 'test';
// a = "test2"; // 常量不能再改变它的值了
print(a);
const List list = [1, 2, 3];
// 和 javaScript 不一样,常量的数组也是不能修改的
// list[1] = 2; // 编辑器不会报错,但是运行会报错。
print(list);

// 同值的常量指向同一块内存
const String b = "test";
print(identical(a, b)); // 是否指向同一块内存位置,true

总结 const 三个特征就是: