Dart语言基础之变量

2019-04-07  本文已影响0人  星空下奔跑

原文:https://www.dartlang.org/guides/language/language-tour

变量

定义一个变量并初始化它:

var name = 'Bob';

变量储存引用,一个叫name的变量包含了一个值为“Bob”的String对象的引用。

name变量的类型被推断为String类型,但是你也可以通过指定类型来改变它。如果一个对象并不只限于一个单一类型,请指定为Objectdynamic类型。design guidelines.

dynamic name = 'Bob';

或者显式指定类型推断:

String name = 'Bob';

Note: This page follows the style guide recommendation of using var, rather than type annotations, for local variables.

默认值

未初始化变量的初始值为null。甚至数字类型也被初始化为null,因为数字在Dart中也是对象。

int lineCount;
assert(lineCount == null);

Note: assert()在生产代码中会被忽略. 开发期间 assert(*condition*) 会抛出异常,除非condition 为真. 细节请看 Assert.

Final 和 const

如果你不想改变一个变量, 用 finalconst来修饰, 可以代替 var 或者附加在类型前面. 一个final 变量只能被赋值一次;一个const 变量是编译时常量. (Const 变量意味着它也是一个 final.) 一个final顶级或类变量在它第一次被使用时初始化.

Note: 实例变量可以是 final 但不是const. Final变量必须在构造函数体之前被初始化— 在定义时, 在构造函数参数后面, 或者在 初始化语句.

下面是如何创建和赋值一个final变量:

final name = 'Bob'; // Without a type annotation
final String nickname = 'Bobby';

你不能改变final变量的值:

name = 'Alice'; // Error: a final variable can only be set once.

使用 const 指定变量为 编译时常量.如果const变量为类变量, 用 static const标记. 在你定义变量的地方为它赋一个编译时常量的值,例如数字,字符串,一个const变量,或常量的算术运算。

const bar = 1000000; // Unit of pressure (dynes/cm2)
const double atm = 1.01325 * bar; // Standard atmosphere

const 关键字并不仅仅用来定义常量变量。你也可以用它来创建常量,也可以用来声明创建常量值的构造函数。所有变量都可以有常量值:

var foo = const [];
final bar = const [];
const baz = []; // Equivalent to `const []`

你可以从const声明的初始化表达式中省略constDON’T use const redundantly.

你可以改变非const和非final变量的值,即使它有常量值:

foo = [1, 2, 3]; // Was const []

你不能改变常量变量的值:

baz = [42]; // Error: Constant variables can't be assigned a value.

更多有关const的信息请看 Lists, Maps, and Classes.

上一篇 下一篇

猜你喜欢

热点阅读