变量与类型
Dart 中的变量
变量是存储数据值的容器。Dart 是一种静态类型语言,具有类型推断功能,这意味着你可以使用或不使用显式类型来声明变量。
变量声明
使用 var
var 关键字让 Dart 推断类型:
一旦赋值,类型就固定了:
显式类型声明
你可以显式指定类型:
动态类型
当类型可以改变时使用 dynamic:
⚠️ 警告:尽可能避免使用 dynamic,因为它绕过了类型安全。
Final 和 Const
final
final 变量只能设置一次:
const
const 变量是编译时常量:
final 和 const 的区别
内置类型
1. 数字
int
整数值(64 位,-2^63 到 2^63-1):
double
64 位浮点数:
num
int 和 double 的父类型:
2. 字符串
字符串表示字符序列:
3. 布尔值
布尔值是 true 或 false:
4. 列表(数组)
对象的有序集合:
5. 集合
唯一项的无序集合:
6. 映射
键值对:
7. Runes
字符串的 Unicode 码点:
8. Symbols
反射中使用的标识符:
类型检查和转换
使用 is 进行类型检查
使用 as 进行类型转换
默认值
未初始化的变量默认值为 null:
Late 变量
对于稍后初始化的变量使用 late:
类型推断
Dart 可以从上下文推断类型:
最佳实践
- 优先使用
var或显式类型而不是dynamic - 对不会改变的变量使用
final - 对编译时常量使用
const - 在公共 API 中明确类型
- 当类型明显时,对局部变量使用类型推断
示例
完整示例
下一步
现在你已经了解了变量和类型,让我们探索: