变量是“存储器中的命名空间”,用于存储值。换句话说,它作为程序中值的容器。变量名称称为标识符。以下是标识符的命名规则 -
标识符不能是关键字。
标识符可以包含字母和数字。
标识符不能包含空格和特殊字符,但下划线(
_
)和美元($
)符号除外。变量名称不能以数字开头。
类型语法
必须在使用变量之前声明变量。Dart使用var
关键字来实现相同的目标。声明变量的语法如下所示
var name = 'Smith';
dart中的所有变量都存储对该值的引用,而不是包含该值。名为name
的变量包含对String对象的引用,其值为 "Smith"
。
Dart 通过在变量名前加上数据类型来支持 类型检查 。类型检查可确保变量仅包含特定于数据类型的数据。下面给出了相同的语法
String name = 'Smith';
int num = 10;
考虑以下示例
void main() {
String name = 1;
}
上面的代码段将导致警告,因为分配给变量的值与变量的数据类型不匹配。
输出
Warning: A value of type 'String' cannot be assigned to a variable of type 'int'
所有未初始化的变量的初始值为null
。这是因为Dart将所有值都视为对象。以下示例说明了相同的情况
void main() {
int num;
print(num);
}
输出
Null
dynamic
关键字
声明没有静态类型的变量被隐式声明为动态。也可以使用dynamic
关键字代替var
关键字声明变量。
以下示例说明了相同的内容。
void main() {
dynamic x = "tom";
print(x);
}
输出
tom
final
和const
使用final
和const
关键字来声明常量。Dart阻止修改使用final
或const
关键字声明变量的值。这些关键字可以与变量的数据类型一起使用,也可以与 var
关键字一起使用。
const
关键字用来表示一个编译时常数。使用const
关键字声明的变量是隐式final
的。
语法:final
关键字
final variable_name
或者
final data_type variable_name
语法:const
关键字
const variable_name
或者
const data_type variable_name
示例 - final
关键字
void main() {
final val1 = 12;
print(val1);
}
输出
12
示例 - const
关键字
void main() {
const pi = 3.14;
const area = pi*12*12;
print("The output is ${area}");
}
上面的例子使用 const
关键字声明了两个常量 pi
和 area
。该 区域 变量的值是一个编译时常数。
输出
The output is 452.15999999999997
实例
如果尝试修改使用 final
或 const
关键字声明的变量,Dart会抛出异常。下面给出例子来说明:
void main() {
final v1 = 12;
const v2 = 13;
v2 = 12;
}
上面给出的代码将抛出以下错误作为输出
Unhandled exception:
cannot assign to final variable 'v2='.
NoSuchMethodError: cannot assign to final variable 'v2='
#0 NoSuchMethodError._throwNew (dart:core-patch/errors_patch.dart:178)
#1 main (file: Test.dart:5:3)
#2 _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:261)
#3 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)
static final const的区别请访问博客文章:Dart中 static final const的区别
本文转自:http://codingdict.com/article/21913