dynamic
-
dynamic d = "优快云"; - 在运行时由系统根据该变量的 赋值 自动 推断该变量的数据类型
- 动态数据类型,在运行时可以改变数据类型:
dynamic d = "优快云";
d = 111;
- 在编译时会使 Dart 语言的静态语法检查失效(如调用一个不属于该字符串对象的方法,不会报错),但会在运行时报错。
var
-
var v = "优快云"; - 在运行时由系统根据该变量的 赋值 自动 推断该变量的数据类型。
- var的数据类型在确定后(区别dynamic),不可更改。
Object
-
Object o1 = 1; Object o2 = "优快云"; - 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;
}
本文探讨了Dart语言中的dynamic和var关键字,展示了它们如何在编译时与运行时区别对待数据类型,以及动态类型带来的优势和潜在风险。特别关注了Object类及其在赋值中的行为和方法特性。
583

被折叠的 条评论
为什么被折叠?



