飞镖null与Null

时间:2020-07-19 09:04:30

标签: firebase flutter dart

据了解,在Dart上检查对象是null还是Null应该是同一件事。

类似的东西:

print(bar == null);
print(bar is Null);

应打印相同的值。但是,在使用Firebase的Flutter应用程序中,我得到了以下行为:

  print(snapshot.data['appearance']['details'].runtimeType); // Null
  print(snapshot.data['appearance']['details'].runtimeType == null); // false
  print(snapshot.data['appearance']['details'].runtimeType == Null); // true
  print(snapshot.data['appearance']['details'].runtimeType is Null); // false

firebase上的字段值为null。为什么会这样呢?

1 个答案:

答案 0 :(得分:2)

null是一个Null类型

.runtimeType返回一个Type。它无法返回null值(这意味着该对象没有类型)。 null.runtimeType返回Null;也就是说,null对象的类型为Null

关于.runtimeType is Null为什么是false的原因,请参见:What is the difference between 'is' and '==' in Dart?