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关键字不只是声明常量变量。还可以使用它来创建常量值,以及声明创建常量值的构造函数。任何变量都可以赋一个常量值。