题目
Dart 中有哪些基本数据类型?请列举并简要说明
信息
- 类型:问答
- 难度:⭐
考点
基础数据类型,变量声明,类型推断
快速回答
Dart 的基本数据类型包括:
- int:整数值(如 1, -5)
- double:浮点数值(如 3.14, -0.001)
- num:int 和 double 的父类型
- String:文本(如 'Hello')
- bool:布尔值(true/false)
使用 var 声明变量时,Dart 会自动推断类型。
解析
原理说明
Dart 是强类型语言,所有值都是对象(无原始类型)。基本数据类型通过类实现,支持面向对象操作。类型系统包含静态检查和运行时检查。
代码示例
// 显式类型声明
int age = 30;
double price = 9.99;
String name = 'Alice';
bool isActive = true;
// 类型推断(推荐)
var count = 42; // 推断为 int
var rating = 4.5; // 推断为 double
var message = 'Hi'; // 推断为 String
var isReady = false; // 推断为 bool
// num 类型示例
num flexibleNumber = 10; // 可赋值为整数
flexibleNumber = 10.5; // 也可赋值为浮点数最佳实践
- 优先使用
var声明局部变量,依赖类型推断 - 在公开 API(如函数参数/返回值)中显式声明类型
- 使用
final或const声明不可变变量
常见错误
- 混淆
int和double:var x = 1; // int 类型
x = 1.5; // 编译错误! - 未初始化变量:
String title; // 默认值为 null
print(title.length); // 运行时错误 - 误用
dynamic:过度使用会失去类型安全
扩展知识
- 类型检查:用
is运算符检查类型if (flexibleNumber is double) { ... } - 类型转换:用
as安全转换var y = flexibleNumber as double; - 空安全:Dart 2.12+ 默认禁止未初始化变量
int score; // 错误:非空变量必须初始化 - 常量优化:
const变量在编译时计算const pi = 3.14159; // 比 final 更高效