想象一下你想要检查相等性的firebase时间戳,如下所示:
if (!a.timestamp.isEqual(b.timestamp){
//Do stuff because timestamp of a and b are not equal
}
如果a为null或a的时间戳为null,这显然会失败(如果b的时间戳是null,这也会失败吗?(。假设a和b不为空。确保上述声明有效的最佳方法是什么。这似乎有点复杂:
if (a.timestamp === null && b.timestamp !== null ||
a.timestamp !== null && b.timestamp === null ||
a.timestamp !== null && !a.timestamp.isEqual(b.timestamp))
{
//Do stuff because timestamp of a and b are not equal
}
您可以稍微简化一下:
if ((a.timestamp === null && b.timestamp !== null) ||
(a.timestamp !== null && !a.timestamp.isEqual(b.timestamp)) )
然后,如果a为null,它会检查b是否为null,如果它们都为null,则跳过,但如果b不为null,那么它将被视为不相等。
在a不为null的所有其他情况下,则isEqual
方法存在,并且世界正确。