Dart变量
精华
小牛编辑
130浏览
2023-03-14
变量是“存储器中的命名空间”,它用于存储值。换句话说,变量用作为程序中值的容器。变量的名称也称为标识符。以下是标识符的命名规则 -
- 标识符不能是关键字。
- 标识符可以包含字母和数字。
- 标识符不能包含空格和特殊字符,但下划线(
_
)和美元($
)符号除外。 - 变量名称不能以数字开头。
变量的语法
在使用变量之前必须先声明变量。Dart使用var
关键字来标识一个变量。声明变量的语法如下所示 -
var name = 'smith';
Dart中的所有变量都存储对值的引用,而不是包含该值。name
变量包含对String
对象的引用,其值为 - Smith
。
Dart通过在变量名前加上数据类型前缀来支持类型检查。类型检查确保变量仅包含特定于数据类型的数据。下面给出了相同的语法 -
String name = 'Maxsu';
int number = 99;
考虑以下示例 -
void main() {
String name = 1;
}
上面的代码段将导致警告,因为分配给变量的值与变量的数据类型不匹配。
执行输出结果如下 -
Warning: A value of type 'String' cannot be assigned to a variable of type 'int'
默认值
未初始化的变量的初始值为null
。即使是具有数字类型的变量的初始值也是null
,因为数字与Dart中的其他变量一样,它们都是对象。以下示例说明了这个情况 -
void main() {
int num;
print(num);
}
输出结果:
Null
dynamic 关键字
声明没有未指定静态类型的变量则会隐式声明为 dynamic
。也可以使用dynamic
关键字代替var
关键字声明变量。
参考以下示例 -
void main() {
dynamic x = "tom";
print(x);
}
final和Const
final
和const
关键字用于声明常量。在Dart中不能修改使用final
或const
关键字声明变量的值。这些关键字可以与变量的数据类型一起使用,也可以与var
关键字一起使用。
const
关键字用于表示编译时常量。使用const
关键字声明的变量是隐式final
。
final关键字语法
final variable_name
// 或者
final data_type variable_name
示例:
void main() {
final val1 = 12;
print(val1); // 输出:12
}
const关键字语法
const variable_name
// 或者
const data_type variable_name
示例:
void main() {
const pi = 3.14;
const area = pi*12*12;
print("The output is ${area}"); // 输出: 452.15999999999997
}
注 - 只有
const
变量可用于计算编译时常量。编译时常量是常量,其值将在编译时确定。
示例
如果尝试修改使用final
或const
关键字声明的变量,Dart会抛出异常。如下面给出的例子 -
void main() {
final v1 = 12;
const v2 = 13;
v2 = 12;
}
执行上面代码将抛出以下错误 -
$dart main.dart
Unhandled exception:
cannot assign to final variable 'v2='.
NoSuchMethodError: cannot assign to final variable 'v2='
#0 NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:176)
#1 main (file:///home/cg/root/3257025/main.dart:4:4)
#2 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:255)
#3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:142)
`