Dart - 变量声明

Dart - 变量声明 首页 / Dart入门教程 / Dart - 变量声明

变量是内存中的命名空间用于存储值。

必须先声明变量,然后才能使用它, 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

finalconst 关键字用于声明常量, Dart防止修改使用finalconst关键字声明的变量的值。

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 - 示例

如果尝试修改使用 finalconst关键字声明的变量,则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)

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

硅谷产品实战36讲 -〔曲晓音〕

技术管理实战36讲 -〔刘建国〕

张汉东的Rust实战课 -〔张汉东〕

手把手教你玩音乐 -〔邓柯〕

中间件核心技术与实战 -〔丁威〕

Serverless进阶实战课 -〔静远〕

Go进阶 · 分布式爬虫实战 -〔郑建勋〕

零基础GPT应用入门课 -〔林健(键盘)〕

工程师个人发展指南 -〔李云〕

好记忆不如烂笔头。留下您的足迹吧 :)