簡體   English   中英

Groovy:在這種情況下“?”是什么意思?

[英]Groovy: What Does “?” Mean in This Context?

我是Groovy的新手,無法理解此代碼的功能。

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

我想嘗試分解

  • aList.size() == 1 ? 斷言列表的大小為1且不為null。
  • aList[0] : null表示aList[0]值默認為null

因此, foo是列表中第一項的值,默認為null。

這是正確的,還是我誤解了這意味着什么?

那是一個三元條件運算符

它采用以下形式:

SOME_BOOLEAN ? IF_TRUE : ELSE

因此,在您的情況下,它與:

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

它是一行if語句。 擴展如下所示:

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

希望能清除它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM