Dart编程变量
变量是“存储器中的命名空间”,用于存储值。换句话说,它作为程序中值的容器。变量名称称为标识符。以下是标识符的命名规则 -
标识符不能是关键字。
标识符可以包含字母和数字。
标识符不能包含空格和特殊字符,但下划线(
_)和美元($)符号除外。变量名称不能以数字开头。
类型语法
必须在使用变量之前声明变量。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
注 - 只有
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)
static final const的区别请访问博客文章:Dart中 static final const的区别
本文转自:http://codingdict.com/article/21913
Dart编程变量的更多相关文章
- shell编程变量赋值
[shell编程变量赋值] 1.等号两边均不能有空格存在.例, a="hello world" 2.变量和其它文字以{}或空格格开,否则会混淆.例, 有时候变量名可能会和其它文 ...
- Dart编程实例 - 类型测试操作符 is!
Dart编程实例 - 类型测试操作符 is! void main() { double n = 2.20; var num = n is! int; print(num); } 本文转自:http:/ ...
- Dart编程实例 - 类型测试操作符is
Dart编程实例 - 类型测试操作符is void main() { int n = 2; print(n is int); } 本文转自:http://codingdict.com/article/ ...
- Dart编程实例 - 相等和关系操作符
Dart编程实例 - 相等和关系操作符 void main() { var num1 = 5; var num2 = 9; var res = num1>num2; print('num1 gr ...
- Dart编程实例 算术操作符
Dart编程实例 算术操作符 void main() { var num1 = 101; var num2 = 2; var res = 0; res = num1+num2; print(" ...
- Dart编程实例 - Const 关键字
Dart编程实例 - Const 关键字 void main() { final v1 = 12; const v2 = 13; v2 = 12; } 本文转自:http://codingdict.c ...
- Dart编程实例 - Final 关键字
Dart编程实例 - Final 关键字 void main() { final val1 = 12; print(val1); } 本文转自:http://codingdict.com/articl ...
- Dart编程实例 - Dynamic 关键字
Dart编程实例 - Dynamic 关键字 void main() { dynamic x = "tom"; print(x); } 本文转自:http://codingdict ...
- Dart编程实例 - Dart 面向对象编程
Dart编程实例 - Dart 面向对象编程 class TestClass { void disp() { print("Hello World"); } } void main ...
随机推荐
- Eclipse maven 明明有jar包 但是不能用
原因1:没有引入pom.xml依赖 解决: 添加pom.xml依赖
- Collections 工具类常见方法
Collections 工具类常用方法: 排序 查找,替换操作 同步控制(不推荐,需要线程安全的集合类型时请考虑使用 JUC 包下的并发集合) 排序操作 void reverse(List list) ...
- JavaScript实现时间上一天和下一天切换
JavaScript实现时间上一天和下一天切换 1.先获取时间戳毫秒数 var date = new Date()//实例化时间戳 var time = date.getTime()//获取当前毫秒数 ...
- pygame游戏框架
#_author:来童星#date:2019/12/22 import pygame import sys pygame.init() size=width,height=640,480 screen ...
- 【转】让应用程序支持emoji字符
什么是emoji?就是这些表情和符号:
- go变量和声明
go变量和声明 这将是美好的开始和结束,通过写下x = 4,我们查看变量,可以说声明了一个变量并赋值,但是很不幸,go语言变量声明和赋值比这更复杂.通过学习一些简单的示例开始学习变量声明和赋值.然后在 ...
- 文件系统类型(ext4、ntfs)
Linux 1.Linux:存在几十个文件系统类型:ext2,ext3,ext4,xfs,brtfs,zfs(man 5 fs可以取得全部文件系统的介绍) 不同文件系统采用不同的方法来管理磁盘空间,各 ...
- APIO2019
device: 用最小公倍数的知识或是画网格模拟转移,神仙们也可以找规律.然后就变成区间覆盖了. 忘记特殊情况了,大众分→Ag #include<iostream> #include< ...
- idea 中使用dataBase插件
最近一段时间重新开始学习Java 使用IntelliJ 发现有个链接数据库插件挺好用的,并且反应速度还挺快的记录下. 点击步骤:View → Tool Windows → data 进行数据库链接 发 ...
- (转)短信vs.推送通知vs.电子邮件:app什么时候该用哪种方式来通知用户?
转:http://www.360doc.com/content/15/0811/00/19476362_490860835.shtml 现在,很多公司都关心的一个问题是:要提高用户互动,到底采取哪一种 ...