flutter中dynamic、var和Object的区别

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;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值