变量是内存中的命名空间用于存储值。
必须先声明变量,然后才能使用它, Dart使用var关键字实现相同的目的。声明变量的语法如下:
var name='Smith';
dart中的所有变量都存储对值的引用,而不是包含值,名为name的变量包含对值为" Smith"的String对象的引用。
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="learnfk"; print(x); }
输出
learnfk
Final 和 Const
final 和 const 关键字用于声明常量, Dart防止修改使用final或const关键字声明的变量的值。
const 关键字用于表示编译时常量,使用 const 关键字声明的变量是隐式最终的。
Final - 语法
final variable_name
OR
final data_type variable_name
Const - 语法
const variable_name
OR
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 , area 变量的值是一个编译时常量。
The output is 452.15999999999997
注意 - 仅 const 变量可用于计算编译时间常数,编译时常量是其值将在编译时确定的常量
Final&Const - 示例
如果尝试修改使用 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)
参考链接
https://www.learnfk.com/dart-programming/dart-programming-variables.html
标签:教程,const,变量,示例,无涯,dart,关键字,Dart,final From: https://blog.51cto.com/u_14033984/8328145