前言
- 在 Dart 中,数据类型是编程的基础概念
- 用于定义变量或函数可以处理的数据的种类
Dart 是一种 静态类型
语言,支持以下主要数据类型:
Dart 在线运行平台
重新推荐一下 Dart 在线运行平台:https://dart.dev 这个比较好用,更准确,更专业。
Dart 中的数据类型
基本数据类型
数值类型
int
:用于表示整数值double
:用于表示双精度浮点数
布尔类型
bool
:表示布尔值,即true
或false
字符串
String
:用于表示一系列字符
我们来看一下代码:
代码语言:javascript复制void main() {
// 整数, 也就是没有小数点的数字
int age = 30;
print(age);
print(age.runtimeType);
print("=================");
// 双精度浮点数, 也就是小数
double height = 1.80;
print(height);
print(height.runtimeType);
print("=================");
// 布尔值, true 或 false,不能是 0 或 1
bool isAdult = true;
print(isAdult);
print(isAdult.runtimeType);
print("=================");
// 字符串,可以是单引号,也可以是双引号
String name = 'Alice';
print(name);
print(name.runtimeType);
}
输出结果:
代码语言:text复制30
int
=================
1.8
double
=================
true
bool
=================
Alice
String
高级数据类型
列表(List)
- 类似于数组,用于表示一系列有序的对象
集合(Set)
- 用于表示一组无序且唯一的对象
映射(Map)
- 表示键值对的集合,其中每个键映射到一个值
我们来看一下代码:
代码语言:javascript复制void main() {
// 列表, 也就是数组, 有序的对象, 可以重复, <int> 表示列表中的元素类型为 int, 也就是整数, 也可以是其他类型, 比如 <String> 表示列表中的元素类型为 String, 也就是字符串, 以此类推
List<int> numbers = [1, 2, 3, 4, 5];
print(numbers);
print(numbers.runtimeType);
print("=================");
// 集合, 也就是 Set, 无序的对象, 不可重复, <String> 表示集合中的元素类型为 String, 也就是字符串, 也可以是其他类型, 比如 <int> 表示集合中的元素类型为 int, 也就是整数, 以此类推
Set<String> names = {'Alice', 'Bob', 'Charlie'};
print(names);
print(names.runtimeType);
print("=================");
// 映射, 也就是 Map, 键值对的集合, 其中每个键映射到一个值, <String, dynamic> 表示键的类型为 String, 值的类型为 dynamic, 也就是动态类型, 也可以是其他类型, 比如 <String, int> 表示键的类型为 String, 值的类型为 int, 也就是整数, 以此类推
Map<String, dynamic> person = {
'name': 'Alice',
'age': 30,
'isAdult': true
};
print(person);
print(person.runtimeType);
}
输出结果:
代码语言:text复制[1, 2, 3, 4, 5]
JSArray<int>
=================
{Alice, Bob, Charlie}
_LinkedHashSet<String>
=================
{name: Alice, age: 30, isAdult: true}
JsLinkedHashMap<String, dynamic>
特殊数据类型
dynamic
- 可以是任意类型的对象
- 使用 dynamic 类型可以绕过静态类型检查,但通常不建议这样做,因为它会失去 Dart 强类型语言的优势
var
- 使用 var 声明变量时,类型会被推断为赋值给变量的初始值的类型
Object
- 所有 Dart 类的基类
我们来看一下代码:
代码语言:javascript复制void main() {
// 动态类型
dynamic variable = 'Hello';
// 可以改变为不同类型
variable = 100;
print(variable);
print(variable.runtimeType);
print("=================");
// 类型被推断为 String
var anotherVariable = 'Hello';
// 错误,因为 anotherVariable 已被推断为 String 类型
// anotherVariable = 100;
print(anotherVariable);
print(anotherVariable.runtimeType);
print("=================");
// Object 类型
Object obj = 'I am an object';
// 可以改变为任何类型
obj = 123;
print(obj);
print(obj.runtimeType);
}
输出结果:
代码语言:text复制100
int
=================
Hello
String
=================
123
int
最后
- 本文介绍了 Dart 中的数据类型
- 理解和使用这些数据类型是 Dart 编程的基础
- 每种类型都有其特定的用途和操作方式,选择适当的类型可以增加代码的清晰度和效率
- 如果你有任何问题或建议,欢迎在下方留言,我会尽快回复
- 如果你觉得本文对你有帮助,欢迎点赞、收藏,你的支持是我写作的最大动力
我正在参与2023腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!
本期结束咱们下次再见