Groovy:什么是"?"意味着在这种情况下?

时间:2017-03-08 13:40:16

标签: groovy syntax

我是Groovy的新手,并且无法理解此代码的功能。

def aList
def foo = aList.size() == 1 ? aList[0] : null

试图将其分解,我认为

  • aList.size() == 1 ?断言列表的大小为1而不是null。
  • aList[0] : null表示aList[0]的值默认为null

因此foo是列表中第一项的值,默认为null。

这是正确的,还是我误解了这是什么意思?

2 个答案:

答案 0 :(得分:4)

那是ternary conditional operator

采取以下形式:

SOME_BOOLEAN ? IF_TRUE : ELSE

所以在你的情况下,它与:

相同
def foo = null
if(aList.size() == 1) {
    foo = aList[0]
}

答案 1 :(得分:1)

它是一行if语句。扩展这将是这样的:

if( aList.size() == 1) {
   foo = aList[0];
 }
else {
foo = null;
}

希望能够解决它。