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'`。00
相似问题