dynamic

  •  dynamic d = "CSDN";
  • 运行时由系统根据该变量的 赋值 自动 推断该变量的数据类型
  • 动态数据类型,在运行时可以改变数据类型:
 dynamic d = "CSDN";
 d = 111;
  • 在编译时会使 Dart 语言的静态语法检查失效(如调用一个不属于该字符串对象的方法,不会报错),但会在运行时报错。

var

  • var v = "CSDN";
  • 运行时由系统根据该变量的 赋值 自动 推断该变量的数据类型。
  • var的数据类型在确定后(区别dynamic),不可更改。

Object

  • Object o1 = 1; 
    Object o2 = "CSDN";
  • Object是所有对象的基类,可以为其赋值子类的类型值,如上一行所示
  • Object的数据类型是确定的(区别dynamic),不可更改。
  • Object中定义的方法如下:
class Object {

  const Object();

  external bool operator ==(other);

  external int get hashCode;

  external String toString();

  @pragma("vm:entry-point")
  external dynamic noSuchMethod(Invocation invocation);

  external Type get runtimeType;
}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐