Dart 笔记 2 - 变量

2019-01-08  本文已影响0人  三流之路
String name = 'Bob';
var name2 = 'Bob';
dynamic name3 = 'Bob';
  1. 可以显示声明类型
  2. var 声明变量而不指定类型,当被赋值后 Dart 本身会进行类型推断。类型一旦确定就不会改变
  3. 如果一个变量在以后会变化类型,比如原来是 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.
上一篇下一篇

猜你喜欢

热点阅读