Dart-数据类型

2023-12-15 00:10:03 浏览数 (1)

前言

  • 在 Dart 中,数据类型是编程的基础概念
  • 用于定义变量或函数可以处理的数据的种类

Dart 是一种 静态类型 语言,支持以下主要数据类型:

Dart 在线运行平台

重新推荐一下 Dart 在线运行平台:https://dart.dev 这个比较好用,更准确,更专业。

Dart 中的数据类型

基本数据类型

数值类型

  • int:用于表示整数值
  • double:用于表示双精度浮点数

布尔类型

  • bool:表示布尔值,即 truefalse

字符串

  • 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腾讯技术创作特训营第四期有奖征文,快来和我瓜分大奖!

本期结束咱们下次再见

0 人点赞