var 定义的变量没有静态类型检查

来源:4-7 dynamic、var、Object的使用与区别

慕UI5531744

2025-06-27

void main() {
  var x;
  x = 1;
  x = 'h';
  print(x);
}

为啥不报错?

写回答

1回答

CrazyCodeBoy

2025-06-27

1. **当 var 声明时没有初始化**:如果使用 `var` 声明变量但没有立即初始化(如 `var x;`),Dart 会将其类型推断为 `dynamic`,这意味着它可以持有任何类型的值。

2. **动态类型特性**:`dynamic` 类型关闭了静态类型检查,允许变量在运行时接受任何类型的值,因此您可以先赋值为数字 `1`,然后再赋值为字符串 `'h'`。
0
0

慕课甄选-Flutter零基础极速入门到进阶实战

全新Flutter从入门到进阶,实战仿携程网App

732 学习 · 340 问题

查看课程