mar*_*ann 1 null groovy 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
Run Code Online (Sandbox Code Playgroud)
告诉我,如果我错了,但上面这三个三元语句都应该做同样的事情,即如果nulString不为null,则打印出"String is not null".如果nullString为null,则打印出"String is null".
而且我认为你们都同意,如果我初始化一个像nullString =""这样的变量,它就不是空的.仅仅因为""不是空的.
但是当使用nullString =""测试上面的代码时,只有第一个打印出"String is not null".另外两个将""解释为null.这是为什么?
(抱歉我的英文,我希望你明白我想说的话)