就目前所知,在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。为什么它会这样?
发布于 2020-07-19 09:11:27
null是一个值。Null是一种类型。
.runtimeType返回一个Type。它不能返回null值(这意味着对象没有类型)。null.runtimeType返回Null;也就是说,null对象有一个名为Null的类型。
至于为什么.runtimeType is Null是false,请参见:What is the difference between 'is' and '==' in Dart?
https://stackoverflow.com/questions/62978261
复制相似问题