Groovy Elvis运算符和逻辑

时间:2016-11-02 13:53:51

标签: groovy syntax

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

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

testVal = test1 ?: test2 && test3

Elvis运营商右侧的所有内容是否都被视为一个单独的实体,或者只是右边的实体是什么?

意思是,groovy将代码读作

testVal = (test1 ?: test2) && test 3
  

如果test1失败,请执行test2 - 让我们调用此结果test12。   testVal = test12&& TEST3

或是否将其视为

test1 ?: (test2 && test3)
  

如果test1失败,请执行test2和test 3 - 让我们调用此结果test23。   testVal = test1&& test23

1 个答案:

答案 0 :(得分:4)

Groovy documentation声明&&运算符的优先级高于?: 所以代码执行为test1 ?: (test2 && test3)