带and逻辑的Groovy Elvis运算符

带and逻辑的Groovy Elvis运算符,groovy,syntax,Groovy,Syntax,这可能是一个愚蠢的问题,但我很好奇这是如何运作的- 如果在then子句中有一个带有and/or逻辑的Elvis运算符,我应该如何编写该操作?这听起来让人困惑,我知道,所以让我举个例子 testVal = test1 ?: test2 && test3 Elvis操作符右侧的所有内容都被视为一个单独的实体,还是仅仅是紧靠右侧的内容 也就是说,groovy是否将代码理解为 testVal = (test1 ?: test2) && test 3 如果test1失败

这可能是一个愚蠢的问题,但我很好奇这是如何运作的-

如果在then子句中有一个带有and/or逻辑的Elvis运算符,我应该如何编写该操作?这听起来让人困惑,我知道,所以让我举个例子

testVal = test1 ?: test2 && test3
Elvis操作符右侧的所有内容都被视为一个单独的实体,还是仅仅是紧靠右侧的内容

也就是说,groovy是否将代码理解为

testVal = (test1 ?: test2) && test 3
如果test1失败,则执行test2-让我们将此结果称为test12。 testVal=test12&&test3

或者它读作

test1 ?: (test2 && test3)
如果test1失败,则执行test2和Test3-我们将此结果称为test23。 testVal=test1&&test23

声明
&&
运算符的优先级高于
?:


因此,代码被执行为
test1:(test2&&test3)

Perfect。谢谢您!