Dart 数据类型
- 数字
- 字符串
- 布尔
- 列表 list
- map
数字
Dart 有两种数字类型:
-
整数 – 整数值表示非小数值,即没有小数点的数值。例如,值
10
是整数。整数文字使用 int 关键字表示。 -
浮点型 – Dart 也支持小数数值,即带小数点的值。Dart 中的 Double 数据类型表示 64 位(双精度) 浮点数。例如,值
10.10
。关键字 double 用于表示浮点文字。
字符串
Dart 字符串是一系列 UTF-16 代码单元。Runs 用于表示 UTF-32 代码单元序列。关键字 String
用于表示字符串文字。字符串值嵌入单引号或双引号中。
布尔
布尔数据类型表示布尔值 true
和false
。Dart 使用 bool
关键字表示布尔值。
列表 list
一个 列表 是对象的有序组。Dart 中的 List 数据类型与其他编程语言中的数组概念同义。
映射 map
映射 map 数据类型表示一组值作为键 - 值对。dart:core
库分别使创建和这些集合的操作通过预定义列表和 map 类。
动态类型
Dart 是一种可选类型语言。如果未明确指定变量的类型,则变量的类型是 动态的。dynamic
关键字也可以用来作为一种类型的注释明确。
声明变量的标准形式
必须在使用变量之前声明变量。Dart 使用 var
关键字来实现相同的目标,通过在变量名前加上数据类型来支持 类型检查。
var name = "xiaoma";
dart 中的所有变量都存储对该值的引用,而不是包含该值。名为 name
的变量包含对 String 对象的引用,其值为 "xiaoma"
。
void main (){
int age;
print(age);
}
//null
所有未初始化的变量的初始值为null
。这是因为 Dart 将所有值都视为对象。以下示例说明了相同的情况
dynamic 关键字
声明没有静态类型的变量被隐式声明为动态。也可以使用 dynamic
关键字代替 var
关键字声明变量。
void main(){
dynamic x = "xiaoma";
print(x);
}
//xiaoma
final 和 const
使用 final
和const
关键字来声明常量。Dart 阻止修改使用 final
或const
关键字声明变量的值。这些关键字可以与变量的数据类型一起使用,也可以与 var
关键字一起使用。
const
关键字用来表示一个编译时常数。使用 const
关键字声明的变量是隐式 final
的。
void main(){
//final 声明常量
final name = "xiaoma";
print(name);
//const 声明常量
const pi = 3.14;
const area = pi*12*12;
print(area);
}
/*
xiaoma
452.15999999999997
*/
注:只有 const
变量可用于计算编译时常量。编译时常量是常量,其值将在编译时确定。
如果尝试修改使用 final
和const
关键字声明的变量,dart
会抛出异常。
void mian(){
final lastname = "Lee";
const firstname = "Karming";
// 不能更改
lastname = "Li";
}
/*
error: 'lastname', a final variable, can only be set once. (assignment_to_final_local at main.dart:4)
info: The value of the local variable 'lastname' isn't used. (unused_local_variable at main.dart:2)
info: The value of the local variable 'firstname' isn't used. (unused_local_variable at main.dart:3)
*/
注:对于想要在编译时确定并且不再变的变量,使用 const。如果 const 变量位于类级别,则将其标记为静态 const。
const 关键字不只是声明常量变量。还可以使用它来创建常量值,以及声明创建常量值的构造函数。任何变量都可以赋一个常量值。