根据Object.runtimeType的Dart文档,该字段的类型为Type
。这令人困惑,因为我从编译器收到错误消息,抱怨该字段不是类型。
请参阅以下示例代码:
final double first = 1.0;
final int second = 2;
final third = second as double; // works fine, unlike declaration below.
assert(first.runtimeType == double); // true
final fourth = second as first.runtimeType;
最后一行抛出此编译时错误:
名称“ first.runtimeType”不是类型,因此不能在“ as”表达式中使用。
示例代码显示了first.runtimeType == double
,难道不是跟着_ as first.runtimeType
等同于_ as double
吗?
答案 0 :(得分:2)
我认为实际上很简单,runtimeType
仅在运行时可用,不能由编译器进行静态分析。