Dart语言教程:变量的语法

2019-06-2214:55:20编程语言入门到精通Comments2,631 views字数 1819阅读模式

变量是“存储器中的命名空间”,它用于存储值。换句话说,变量用作为程序中值的容器。变量的名称也称为标识符。以下是标识符的命名规则 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

  • 标识符不能是关键字。
  • 标识符可以包含字母和数字。
  • 标识符不能包含空格和特殊字符,但下划线(_)和美元($)符号除外。
  • 变量名称不能以数字开头。

变量的语法

在使用变量之前必须先声明变量。Dart使用var关键字来标识一个变量。声明变量的语法如下所示 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

var name = 'smith';
Dart

Dart中的所有变量都存储对值的引用,而不是包含该值。name变量包含对String对象的引用,其值为 - Smith文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

Dart语言教程:变量的语法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

Dart通过在变量名前加上数据类型前缀来支持类型检查。类型检查确保变量仅包含特定于数据类型的数据。下面给出了相同的语法 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

String name = 'Maxsu'; 
int number = 99;
Dart

考虑以下示例 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

void main() { 
   String name = 1; 
}
Dart

上面的代码段将导致警告,因为分配给变量的值与变量的数据类型不匹配。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

执行输出结果如下 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

Warning: A value of type 'String' cannot be assigned to a variable of type 'int'
Shell

默认值文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

未初始化的变量的初始值为null。即使是具有数字类型的变量的初始值也是null,因为数字与Dart中的其他变量一样,它们都是对象。以下示例说明了这个情况 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

void main() { 
   int num; 
   print(num); 
}
Dart

输出结果:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

Null
Shell

dynamic 关键字文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

声明没有未指定静态类型的变量则会隐式声明为 dynamic 。也可以使用dynamic关键字代替var关键字声明变量。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

参考以下示例 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

void main() { 
   dynamic x = "tom"; 
   print(x);  
}
Dart

final和Const

finalconst关键字用于声明常量。在Dart中不能修改使用finalconst关键字声明变量的值。这些关键字可以与变量的数据类型一起使用,也可以与var关键字一起使用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

const关键字用于表示编译时常量。使用const关键字声明的变量是隐式final文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

final关键字语法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

final variable_name
// 或者
final data_type  variable_name
Dart

示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

void main() { 
   final val1 = 12; 
   print(val1); // 输出:12
}
Dart

const关键字语法文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

const variable_name
// 或者
const data_type  variable_name
Dart

示例:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

void main() { 
   const pi = 3.14; 
   const area = pi*12*12; 
   print("The output is ${area}"); // 输出: 452.15999999999997
}
Dart

注 - 只有const变量可用于计算编译时常量。编译时常量是常量,其值将在编译时确定。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

示例文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

如果尝试修改使用finalconst关键字声明的变量,Dart会抛出异常。如下面给出的例子 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

void main() { 
   final v1 = 12; 
   const v2 = 13; 
   v2 = 12; 
}
Dart

执行上面代码将抛出以下错误 -文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

$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)

原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/dart/dart_programming_variables.html#article-start文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ymba/13736.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ymba/13736.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定