Dart中final、const、static使用
2019-04-30 本文已影响0人
xmb
// 类外面
const nameOut = "name_out"; // 不可变
final nameOut2 = "name_out2"; // 必须进行初始化,不可变
// static const nameOut3 = "name_out3"; 错误用法,static不能用在类外面
var nameOut3;
class TestClass {
/*
* static 标识一个成员属于类而不是对象
* final 必须初始化,初始化后值不可变,编译时不能确定值
* const 编译时可确定,并且不能修改
* */
final name; // 需要在构造方法里初始化
static const name2 = 'name2'; // 只有静态变量才能被定义为const
final name3 = 'name3'; // 定义时初始化
var name4;
TestClass(this.name, this.name4);
void test() {
const name5 = "name5"; // 不可变
var name6 = "name6"; // 可变
final name7 = "name7"; // 不可变
// static 不可用在方法里
// static final name8 = "name8";
// name5 = "name"; // 不可更改
name6 = "name";
// name7 = "name"; // 不可更改
print("测试:$name5, $name6, $name7");
}
}
// 如果累提供一个状态不变的对象,可以使用常量构造函数
class Test2Class {
final name1;
final name2;
// 默认构造函数不能和常量构造函数同时定义
// Test2Class(this.name1, this.name2);
const Test2Class(this.name1, this.name2);