有人可以向我解释如何/何时/为何使用const关键字,或者它只是"声明一个常量变量的方式"?如果是这样,这有什么区别:
int x = 5;
Run Code Online (Sandbox Code Playgroud)
和
const int x = 5;
Run Code Online (Sandbox Code Playgroud)
你能问我一个例子吗?
Sen*_*mar 18
const表示编译时间常数.必须在编译时知道表达式值.const修改"值".
"const"的含义在Dart中有点复杂和微妙.const修改值.您可以在创建集合时使用它,例如const [1,2,3],以及构造对象(而不是新的)时,如const Point(2,3).这里,const意味着对象的整个深度状态可以在编译时完全确定,并且对象将被冻结并完全不可变.
如果你使用
const x = 5 那么变量x可以用在像cosnt这样的集合中
const aConstCollection = const [x];
Run Code Online (Sandbox Code Playgroud)
如果你不使用const,x = 5那就用吧
const aConstCollection = const [x]; 是非法的.
更多来自www.dartlang.org的例子
class SomeClass {
static final someConstant = 123;
static final aConstList = const [someConstant]; //NOT allowed
}
class SomeClass {
static const someConstant = 123; // OK
static final startTime = new DateTime.now(); // OK too
static const aConstList = const [someConstant]; // also OK
}
Run Code Online (Sandbox Code Playgroud)