在 Dart 中存在两种类型。
这是Dart 语言规范中的证明:
null的静态类型是底部。
null是Null null是bottom这意味着 Dart 中的对象可以有两种类型。
一种调用的真实类型static和一种virtual调用的类型runtime。
也就是说,运行时类型null不是 abottom而是一个普通的 class Null。
class Null {
factory Null._uninstantiable() {
throw new UnsupportedError('class Null cannot be instantiated');
}
/** Returns the string `"null"`. */
String toString() => "null";
}
Run Code Online (Sandbox Code Playgroud)
但是同时具有这个常规运行时类型的Null值可以分配给任何其他类型,因为 的真实(静态)类型null是一种bottom类型。
在 Dart 中如何称呼这种技术?
类型替换或不同的东西?
聚苯乙烯
这个问题是关于值的静态类型,而不是关于使用类型注释声明的变量的静态类型。 …