变量是“存储器中的命名空间”,用于存储值。换句话说,它作为程序中值的容器。变量名称称为标识符。以下是标识符的命名规则 -

  • 标识符不能是关键字。

  • 标识符可以包含字母和数字。

  • 标识符不能包含空格和特殊字符,但下划线(_)和美元($)符号除外。

  • 变量名称不能以数字开头。

类型语法

必须在使用变量之前声明变量。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

finalconst

使用finalconst关键字来声明常量。Dart阻止修改使用finalconst关键字声明变量的值。这些关键字可以与变量的数据类型一起使用,也可以与 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 关键字声明了两个常量 piarea 。该 区域 变量的值是一个编译时常数。

输出

The output is 452.15999999999997

注 - 只有 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)

static final const的区别请访问博客文章:Dart中 static final const的区别

本文转自:http://codingdict.com/article/21913

Dart编程变量的更多相关文章

  1. shell编程变量赋值

    [shell编程变量赋值] 1.等号两边均不能有空格存在.例, a="hello world"   2.变量和其它文字以{}或空格格开,否则会混淆.例, 有时候变量名可能会和其它文 ...

  2. Dart编程实例 - 类型测试操作符 is!

    Dart编程实例 - 类型测试操作符 is! void main() { double n = 2.20; var num = n is! int; print(num); } 本文转自:http:/ ...

  3. Dart编程实例 - 类型测试操作符is

    Dart编程实例 - 类型测试操作符is void main() { int n = 2; print(n is int); } 本文转自:http://codingdict.com/article/ ...

  4. Dart编程实例 - 相等和关系操作符

    Dart编程实例 - 相等和关系操作符 void main() { var num1 = 5; var num2 = 9; var res = num1>num2; print('num1 gr ...

  5. Dart编程实例 算术操作符

    Dart编程实例 算术操作符 void main() { var num1 = 101; var num2 = 2; var res = 0; res = num1+num2; print(" ...

  6. Dart编程实例 - Const 关键字

    Dart编程实例 - Const 关键字 void main() { final v1 = 12; const v2 = 13; v2 = 12; } 本文转自:http://codingdict.c ...

  7. Dart编程实例 - Final 关键字

    Dart编程实例 - Final 关键字 void main() { final val1 = 12; print(val1); } 本文转自:http://codingdict.com/articl ...

  8. Dart编程实例 - Dynamic 关键字

    Dart编程实例 - Dynamic 关键字 void main() { dynamic x = "tom"; print(x); } 本文转自:http://codingdict ...

  9. Dart编程实例 - Dart 面向对象编程

    Dart编程实例 - Dart 面向对象编程 class TestClass { void disp() { print("Hello World"); } } void main ...

随机推荐

  1. ES模块的基本用法常见使用问题

    本文作者:高峰,360奇舞团前端工程师,W3C WoT工作组成员. ES6中引入了模块(Modules)的概念,相信大家都已经挺熟悉的了,在日常的工作中应该也都有使用. 本文会简单介绍一下ES模块的优 ...

  2. koa 中间件 koa-art-template 的使用

    例子 const Koa = require('koa'); const render =require('koa-art-template'); const path= require('path' ...

  3. 多线程的设计模式:Future、Master-Worker

    一 简介 并行设计模式属于设计优化的一部分,它是对一些常用的多线程结构的总结和抽象.与串行程序相比,并行程序的结构通常更为复杂,因此合理的使用并行模式在多线程开发中更具有意义,在这里主要介绍==Fut ...

  4. ECMAScript 6学习总结

    学习ECMAScript 6 一.什么是ES6 ECMAScript6是ECMAScript的升级,实现用来编写复杂程序项目. 二.ECMAScript和JavaScript的关系 JavaScrip ...

  5. 源码方式安装 lrzsz库

    源码方式安装 lrzsz库:https://www.cnblogs.com/cocoajin/p/11731787.html 我们都知道安装了lrzsz工具的linux系统环境,在shell里可以非常 ...

  6. 测试使用python的用途

    使用Python:1. 分析日志,尤其是服务器端日志.脚本就是短小精悍的2. 用来生成测试数据,比如生成随机的10w个词,很麻烦:如果找一个字库,存在数表里,然后用Python取数据3. 做数据发出的 ...

  7. 让IE8兼容识别css3选择器——selectivizr-min.js

    html: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...

  8. “今日头条杯”首届湖北省大学程序设计竞赛(网络同步赛 )--E. DoveCCL and Resistance

    题目描述:链接点此 这套题的github地址(里面包含了数据,题解,现场排名):点此 链接:https://www.nowcoder.com/acm/contest/104/D来源:牛客网 题目描述 ...

  9. 网页压缩--gzip和deflate的区别

    我们在配置网站GZip压缩的时候,会发现有两个模块可以设置的,一个是GZip模块的参数配置,另一个是Deflate模块的参数配置,他们的设置方法是一样的.刚开始时我不太明白,这两地方有什么不同?网站开 ...

  10. 使用VS2015制作安装包( 含相关的下载链接)

    补充: 在看下面的教程过程中,如果在下面的步聚1中没有 " Visual Studio Installer", 则需要通过下面的链接进行安装 Visual Studio Insta ...