当前位置: 代码迷 >> 综合 >> Dart dynamic,var,object的区别
  详细解决方案

Dart dynamic,var,object的区别

热度:82   发布时间:2023-12-10 22:02:22.0

Dart汇总请点击这里

var定义的类型是不可变的,dynamic和object类型是可以变的,而dynamic 与object 的最大的区别是在静态类型检查上

void main() {
    //varvar str = "hello world";print(str.runtimeType);//Stringprint(str);//hello world//str=1会报错str=1;//dynamicdynamic mic = "hello world";//编译时不会揣测数据类型,但是运行时会推断print(mic.runtimeType);//Stringprint(mic);//hello world//但是这样的坏处就是会让dart的语法检查失效,所以有可能会造成混乱而不报错//所以不要直接使用dynamicmic.foo();//通过它定义的变量会关闭类型检查,这段代码静态类型检查不会报错,但是运行时会crash,因为mic并没有foo()方法,// 所以建议大家在编程时不要直接使用dynamicmic=1;print(mic.runtimeType);//int 说明类型是可变的print(mic);//1//ObjectObject object = "hello world";print(object.runtimeType);//Stringprint(object);//hello worldobject=1;print(object.runtimeType);//int 说明类型是可变的print(object);//1//object.foo();静态类型检查会运行报错会报错object.foo();}
  相关解决方案