dynamic 》》》直接翻译过来可以是动态的
void main() //dynamic
dynamic x ='hal';
print(x.runtimeType);//数据类型
print(x);
x = 123;
print(x.runtimeType);
print(x);
var a = 'var';
print(a.runtimeType);
print(a);
// Object
Object o1 ='111';
print(o1.runtimeType);
print(o1);
o1.toString();
print(o1);
}
// dynamic ,var、object 三种类型的区别
// dynamic:所有dart 对象的基础类型,在大多数情况下,不直接使用它
// 通过它定义的变量会关闭类型检查,这意味着 dynamix x= 'hal'; x.foo();
// 这段贷款静态类型检查不会报错,但是运行时会crash,因为x 并没有foo() 方法,所以建议大家在编程时不要直接使用dynamic;
// var: 是一个关键字,意思是"我不关心这里的类型是什么",系统会自动判断类型 runtimeType;
// object: 是Dart 对象的基类,当你定义: object o =xxx ;时这个时候系统会认为o 十个对象,你可以调用o的toString()和hashCode()方法
// 因为Object 提供了这些方法,但是如果你尝试调用o.foo()时,静态类型检查会运行报错。
// 综上不难看出dynamic 与object 的最大的区别是在静态类型检查上。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现