flutter中dynamic、var和Object的区别
dynamicdynamic d = "CSDN";在运行时由系统根据该变量的 赋值 自动 推断该变量的数据类型动态数据类型,在运行时可以改变数据类型:dynamic d = "CSDN";d = 111;在编译时会使 Dart 语言的静态语法检查失效(如调用一个不属于该字符串对象的方法,不会报错),但会在运行时报错。varvar v = "CSDN";在运行时由系统根据该变量的 赋值 自动 推断
·
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;
}
更多推荐
已为社区贡献2条内容
所有评论(0)