Groovy:三元运营商说""一片空白

时间:2015-02-26 15:51:07

标签: groovy null ternary-operator

def nullString = "String is NOT null"

def check = (nullString != null) ? nullString : "String is null"
def check2 = nullString ? nullString : "String is null"
def check3 = nullString ?: "String is null"

println check 
println check2
println check3

告诉我,如果我错了,但上面这三个三元语句都应该做同样的事情,即如果nulString不为null,则打印出“String is not null”。如果nullString为null,则打印出“String is null”。

我认为你们都同意,如果我初始化一个像 nullString =“”这样的变量,它就不是空的。仅仅因为“”不是空的。

但是当用 nullString =“”测试上面的代码时,只有第一个打印出“String is not null”。另外两个将“”解释为null。这是为什么?

(抱歉我的英文,我希望你明白我想说的)

2 个答案:

答案 0 :(得分:9)

答案 1 :(得分:1)

默认情况下,空字符串的计算结果为false,计算结果为true:

assert !""