获取三元表达式的第一个参数的值

Hes*_*oon 4 groovy

我想在三元表达式中使用第一个参数的值来执行以下操作:

a() ? b(value of a()) : c
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?a是一个运行多次且返回列表的代价很高的函数.如果列表为null,我需要进行不同的计算.我想用三元表达来表达它.

我尝试过这样的事情:

String a()
{
    "a"
}

def x
(x=a()) ? println(x) : println("not a")
Run Code Online (Sandbox Code Playgroud)

但它很难看......

tim*_*tes 5

你可以把它包在一起吗?

def result = a().with { x -> x ? "Got $x" : "Nope" }
Run Code Online (Sandbox Code Playgroud)