Groovy中最接近Elvis运算符的反面是什么?

Groovy中最接近Elvis运算符的反面是什么?,groovy,Groovy,因此,我可以替换旧的三元操作: def something = mainThing != null ? mainThing : "gone!" 使用Elvis操作员: def something = mainThing ?: "gone!" 但是有没有一种很好的方法来代替相反的方法呢 def keyValuePair = (mainThing != null ? mainThing + "." : "") + "specific=" + value 如果前缀存在,我将使用前缀加上点。您可以

因此,我可以替换旧的三元操作:

def something = mainThing != null ? mainThing : "gone!"
使用Elvis操作员:

def something = mainThing ?: "gone!"
但是有没有一种很好的方法来代替相反的方法呢

def keyValuePair = (mainThing != null ? mainThing + "." : "") + "specific=" + value

如果前缀存在,我将使用前缀加上点。

您可以使用
?。
来简化该表达式。当前正在使用的运算符(
+
)使这一点几乎不相关,但假设方法访问(这也更常见),您可以键入:

def keyValuePair = mainThing?.concat('.') ?: "" + "specific=" + value

它使用
.concat
而不是
+
进行字符串连接[您可以使用
.plus()
:-)],然后使用
?:
mainThing?.concat('.')
如果
mainThing
为false(按Groovy真值术语),则返回null,如果不是,则返回方法调用的结果。

Ah,当然。我专注于使用一个操作符8(应该注意,
def something=mainThing?:“gone!”
将返回
gone!
如果
mainThing
为空,或者返回空字符串。