Dart 常量和常量值
final
和 const
两个关键字用来定义常量,有什么区别呢?
-
final
声明的是运行时常量,const
声明的是编译时常量 -
const
可以声明常量值
举个例子:
import 'dart:math';
void main() {
var random = Random();
final randomNumber = random.nextInt(10);
}
如上所示 random.nextInt(10)
就是一个运行时常量,因为随机数只有在程序运行的时候才会产生。
那么编译时常量呢,下面就是编译时常量,可以说区别很明显了。
void main() {
const double PI = 3.14;
const MAX_AGE = 255;
const END_MESSAGE = "GAME OVER";
}
什么是常量值?
List students = const <String>["李白"];
const <String>["李白"]
就是一个常量值,但是students
是一个变量,所以students
是可变的,举个鲜明的例子。
List students = const <String>["李华"];
students[0] = "李华111";
// Error: Uncaught Error: Unsupported operation: indexed set
List students = const <String>["李华"];
students =const <String> ['杜甫','李白'];
print(students); // [杜甫, 李白]
所以这就是dart中的常量和常量值了