String name = 'Bob';
var name2 = 'Bob';
dynamic name3 = 'Bob';
- 可以显示声明类型
- var 声明变量而不指定类型,当被赋值后 Dart 本身会进行类型推断。类型一旦确定就不会改变
- 如果一个变量在以后会变化类型,比如原来是 String,后来又可能变成 int,用 dynamic 明确说明不需要任何类型
未初始化的变量(即使是数字类型的变量)的值都为 null,因为 Dart 中一切都是对象。
int lineCount;
assert(lineCount == null);
在生产环境中,
assert()
调用被忽略。在开发环境中当assert(condition)
的condition
条件不为真时抛出一个异常。
使用 final 或 const 修饰的变量只能设置一次。
const 变量是一个编译时常数。对于想要在编译时确定并且不再变的变量,使用 const。如果 const 变量位于类级别,则将其标记为静态 const。在声明该变量时,将该值设置为编译时常量,例如数字或字符串字面量、const 变量或常量数字算术运算的结果:
const bar = 1000000;
const double atm = 1.01325 * bar;
const 关键字不只是声明常量变量。还可以用它来创建常量值,以及声明创建常量值的构造函数。任何变量都可以赋一个常量值。
var foo = const [];
final bar = const [];
const baz = []; // 可以从 const 声明的初始化表达式中省略 const
可以更改一个非 final 的非 const 变量的值,即使它曾经有一个 const 值:
foo = [1, 2, 3]; // Was const []
但不能改变 const
变量的值:
baz = [42]; // Error: Constant variables can't be assigned a value.
网友评论