Dart笔记-001变量与常量

变量与常量

在 Dart 中,任何保存在变量中的都是一个对象,并且所有的对象都是对应一个类的实例;

无论是数字,函数和 null 都是对象。所有对象继承自 Object 类;

尽管 Dart 是强类型的,但是 Dart 可以推断类型,所以类型注释是可选的;

如果要明确说明不需要任何类型, 需要使用特殊类型 dynamic;

变量

使用 dynamic 声明动态类型变量,类型可以为任意类型;

使用 var 声明值可变变量,类型为初始化类型,初始化后类型不可变,值可变;

使用 final 声明值不可变变量,只能被赋值一次;

使用 int/String 等指定类型变量,类型不可变,值可变;

变量未初始化时,默认值为 null;

// 动态类型变量;可以赋值为任意类型
dynamic dynVal;
dynVal = 10;
dynVal = "dynVal";
print(dynVal);

// 值可变变量;未初始化时,值为 null,类型为 dynamic
var action;
action = 100;
action = "Dart";
print(action);

// 值可变变量;已初始化时,则类型为初始化类型,类型不可变
var action1 = 100;
action1 = 101;
// action1 = "Dart"; 类型不再可变,只能赋同类型值
print(action1);

// 值不可变变量;只能赋值一次
final action2 = 100;
print(action2);

// 指定类型变量;只能赋值指定类型
int action3;
// 未初始化,值为 null
print(action3);
action3 = 101;
print(action3);

// 常量的值只能赋值一次,且必须是编译期常量
const action4 = 200;

常量

使用 const 声明常量;

使用 const 声明的必须是编译期常量;

Const 变量是隐式 Final 的类型;

提示:实例变量可以是 final 类型但不能是 const 类型;必须在构造函数体执行之前初始化 final 实例变量:在变量声明中,参数构造函数中或构造函数的初始化列表中进行初始化

// const 常量
const action4 = 200;

// final 可以开始不赋值,但只能赋值一次;final 是运行时常量,在运行时第一次使用才初始化
final time = new DateTime.now();

// const 初始化时必须赋值,且必须是编译期常量;const 常量无法这样赋值
// const time = new DateTime.now();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。