Flutter dynamic,var,object的区别

317 阅读1分钟

如果将变量声明为dynamic,则类型会随时变化。在编译阶段不会检查类型

例如:
   dynamic a = “hello”;  //是字符串
   a = 123;  //分配给int值
   a = true;  // 布尔类型
   

如果将变量声明为var,则一旦分配的类型确定就无法更改了

例如:
    var b = 'arrom'; //字符串类型
    b = 123;//这时编译通不过

但是如果用var声明一个变量而不赋值的话,那么它的类型也可以动态变化

例如:
    var c;//
     c = 10 ;//int类型
     c = ‘arrom’; //字符串

如果将变成声明为object,则类型会随时变化。在编译阶段会检查类型

例如:
    Object c;
    c.test(); //test是一个不存在放,用object是会报错的,但是使用dynamic编译不会报错