飞镖:unnecessary_null_comparision
dart: unnecessary_null_comparision
对于以下代码:
bool assertTest(int? n1, int? n2) {
return (n1 == null) || (n1 != null && n2 != null);
}
n1 != null
处有一条警告说 The operand can't be null, so the condition is always true.
为什么会出现这个警告? n1 显然可以为空。
布尔运算是惰性的,这意味着如果你计算 a || b
并且 a
是 true
,那么 b
甚至不会被计算。
在您的情况下,如果对 b = (n1 != null && n2 != null)
求值,则表示 a = (n1 == null) = false
,即 n1 != null
,因此检查 n1 != null
将始终为真。
对于以下代码:
bool assertTest(int? n1, int? n2) {
return (n1 == null) || (n1 != null && n2 != null);
}
n1 != null
处有一条警告说 The operand can't be null, so the condition is always true.
为什么会出现这个警告? n1 显然可以为空。
布尔运算是惰性的,这意味着如果你计算 a || b
并且 a
是 true
,那么 b
甚至不会被计算。
在您的情况下,如果对 b = (n1 != null && n2 != null)
求值,则表示 a = (n1 == null) = false
,即 n1 != null
,因此检查 n1 != null
将始终为真。