if(!x)是否与if(x!= null)相同

时间:2015-10-02 20:43:27

标签: groovy boolean-expression

我知道他有点像Is if(pointerVar) the same as if(pointerVar!=NULL)?,但我还是要问。

在Groovy中,我们有以下内容:

def x = someMethod()
if( !x ) {
   // do good stuff
}

这只是一个标准的null支票,即(x != null),对吧?

1 个答案:

答案 0 :(得分:3)

没有。 groovy中的if调用基础asBoolean()方法。这称为Groovy truth

空列表,空字符串,空地图,null,0都是虚假值:

if ([:]) {
    assert false
}

if (null) {
    assert false
}

if ("") {
    assert false
}

if (0) {
    assert false
}

assert null.asBoolean() == false

assert 1.asBoolean()

您也可以在自己的课程中写下asBoolean