“唯一不变的是变化本身”。 —— 斯宾塞·约翰逊
什么是变量?
变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储程序运行时可更改的程序信息。例如,可以创建一个名为 click_count 的变量来存储用户单击 Web 页面上某个对象的次数。使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。它实质上是一个时刻都可能会改变的东西的代称,而这个变化又有一定的范围,使得无论它怎么变,它还是它。
变量的存储
可以把计算机的内存想象成下图的快递柜,有很多格子、每个格子都有编号。我们定义一个计算机变量就好像向快递柜申请一个格子用来存放东西,这个格子的大小呢是根据变量的类型(就是想要存放的物品的可能尺寸)来分配的。而在申请一个格子的时候,里面可能会存在一些东西,当我们放新的东西的进去的时候就会把原来的东西给挤走(更准确说是覆盖,旧的东西找不回来了)。如果我们想让这个格子里的内容参与运算的时候,我们只需要告诉运算的指令这个格子的名称(即变量的名称)即可。
变量的语法
声明变量
在使用变量之前必须先声明变量。Dart 使用 var 关键字来标识一个变量,后跟变量名和可选的初始值。下面的示例代码声明了一个变量名为count的整型变量,其初始值为8:
var count = 8;
Dart 还支持使用数据类型来声明变量,例如:
String name;
int age;
在这个例子中,我们使用 String 和 int 关键字声明了一个字符串变量name和整数变量age。
有时希望同时声明多个变量,只需用逗号分隔开即可,如下代码所示:
var name, age, height;
在这个例子中,我们声明了名为 name、age、height 的三个变量,但是没有为它分配初始值。
初始化变量
在 Dart 中,初始化变量意味着为变量分配一个初始值。在声明变量时,您可以在 = 操作符后面为变量赋值。例如,下面的代码初始化了一个名为 name 的字符串变量:
var name = 'Jacky';
这将把字符串 'Jacky' 分配给 name 变量。
变量仅存储对象的引用。这里名为 name 的变量存储了一个 String 类型对象的引用,“jacky” 则是该对象的值。
name 变量的类型被推断为 String,你也可以为其指定类型。如果一个对象的引用不局限于单一的类型,可以根据设计指南将其指定为 Object 或 dynamic 类型。
在 dart 中可以使用 var 来替代具体类型的声明,会自动推导变量的类型,这是因为 var 并不是直接存储值,而是存储值的对象引用,所以 var 可以声明任何变量。
您还可以在需要时将变量初始化为 null 值:
int? age = null;
使用 ? 来声明一个可空类型,这意味着变量可以为 null。
在 Dart 中,未初始化的变量拥有一个默认的初始化值:null。即便数字也是如此,因为在 Dart 中一切皆为对象,数字也不例外。
dynamic
声明未指定静态类型的变量则会隐式声明为 dynamic 。也可以使用dynamic关键字代替var关键字声明变量。
void main() {
dynamic x = "tom";
print(x);
}
常量( final 和 const )
如果你不想更改一个变量,可以使用关键字 final 或者 const 修饰变量,这两个关键字可以替代 var 关键字或者加在一个具体的类型前。一个 final 变量只可以被赋值一次;const关键字用于表示编译时常量。使用const关键字声明的变量是隐式final。
下面的示例中我们创建并设置两个 final 变量:
final name = 'Bob'; // Without a type annotation
final String nickname = 'Bobby';
你不能修改一个 final 变量的值:
name = 'Alice'; // Error: a final variable can only be set once.
final 和 const 的区别在于如果常量是编译期就能初始化的就用 const, 如果常量是运行时期初始化的就用 final。
main() {
const PI = 3.141592653;//const定义常量
final nowTime = DateTime.now();//final定义常量
}
注释```` 你可能注意到了上文的代码中已经包含了注释;```` Dart 支持单行注释、多行注释和文档注释```` 单行注释以 // 开始。所有在 // 和该行结尾之间的内容被编译器忽略。```` 多行注释以 /* 开始,以
/ 结尾。所有在 /
和
/ 之间的内容被编译器忽略(不会忽略文档注释)。多行注释可以嵌套。```` 文档注释可以是多行注释,也可以是单行注释,文档注释以 /// 或者 /
`* 开始。在连续行上使用 /// 与多行文档注释具有相同的效果。```
标识符
变量名称称为标识符,标识符命名规则:
- 标识符不能是关键字
- 标识符可以包含数字和字母
- 标识符不能包含空格和特殊字符,但下划线(_)和美元($)符号除外
- 变量名称不能以数字开头;
Dart 是一种现代化的编程语言,提供了丰富的关键字和语法,用于定义类、变量和函数等。以下是 Dart 中的所有关键字:
abstract as assert async await break case catch class const continue covariant default deferred do dynamic else enum export extends extension external factory false final finally for Function get if implements import in interface is late library mixin new null of on operator part required rethrow return set show static super switch sync this throw true try typedef var void while with yield
总结
在本文中,我们简要介绍了 Dart 变量的概念、如何声明、初始化和使用它们。作为一个初学者,这将是您开始学习 Dart 编程的良好基础。记住,变量是程序的基本组成部分,它们可以用来存储和操作数据,从而实现程序的逻辑。
练习
1.使用DartPad声明并初始化三个变量,分别是你的姓名、年龄、身高,并且打印出来。
2.请选择以下所有符合命名规则的标识符
(A) _book
(B) 23_b1
(C) stu_1t
(D) #33
(E) true
(F) -3.14159
(G) $100
本文由mdnice多平台发布