对于这段代码,科特林迫使我来处理一个空检查的情况,而在它没有其他线路,尽管是同样的情况:为什么我被迫使用!在空检查的组合?
if (r1 == null && r2 == null)
throw IllegalArgumentException("All nulls!")
else if (r1 == null)
return r2!!.reading // <----- I am forced to !! here
else if (r2 == null)
return r1.reading // <----- The compiler does not complain in this line
这是一个错误或功能?
R1和R2丘壑行之有效? – IRus
为什么通过消除过程检查非空值而不是直接检查非空值?例如'R2 .reading:??R1 .reading:??抛出IllegalArgumentException( “!所有空值”)' – mfulton26
@ mfulton26了'if'的问题表达并不详尽,即不覆盖的情况下当两个'R1 '和'r2'不为空。所以,虽然你的建议在某些情况下可能有用,但在这种情况下,它并不等同。 – Ilya