【问题标题】:Dart null vs NullDart null vs Null
【发布时间】:2020-07-19 09:04:30
【问题描述】:

据了解,在 Dart 上检查对象是 null 还是 Null 应该是一样的。

类似:

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

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

  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。为什么会这样?

【问题讨论】:

    标签: firebase flutter dart


    【解决方案1】:

    null 是一个Null 是一个类型

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

    至于.runtimeType is Null为什么是false,见:What is the difference between 'is' and '==' in Dart?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 2019-10-07
      相关资源
      最近更新 更多