相关疑难解决方法(0)

Dart 静态类型是什么意思,为什么它与运行时类型不同?

在 Dart 中存在两种类型。

  1. 运行时类型
  2. 静态类型

这是Dart 语言规范中的证明:

null的静态类型是底部。

  1. 运行时类型null是Null
  2. 静态类型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 中如何称呼这种技术?

类型替换或不同的东西?

聚苯乙烯

这个问题是关于值的静态类型,而不是关于使用类型注释声明的变量的静态类型。 …

null virtual-machine dart bottom-type dart-sdk

3
推荐指数
1
解决办法
511
查看次数

标签 统计

bottom-type ×1

dart ×1

dart-sdk ×1

null ×1

virtual-machine ×1