我是Groovy的新手,無法理解此代碼的功能。Groovy:什麼是「?」意味着在這種情況下?
def aList
def foo = aList.size() == 1 ? aList[0] : null
試圖打破它,我覺得
aList.size() == 1 ?
被斷言列表的大小爲1,而不是空。aList[0] : null
意味着在aList[0]
默認值設置爲空
foo
因此是在列表中的第一項的值,並且默認爲null。
這是正確的,還是我誤解了這是如何表現?
我是Groovy的新手,無法理解此代碼的功能。Groovy:什麼是「?」意味着在這種情況下?
def aList
def foo = aList.size() == 1 ? aList[0] : null
試圖打破它,我覺得
aList.size() == 1 ?
被斷言列表的大小爲1,而不是空。aList[0] : null
意味着在aList[0]
默認值設置爲空foo
因此是在列表中的第一項的值,並且默認爲null。
這是正確的,還是我誤解了這是如何表現?
這是一個ternary conditional operator
它採用以下形式:
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;
}
。希望清除它。
是的,謝謝! – Donglecow
謝謝你的簡潔解釋,我想我現在明白了。感謝鏈接,我努力通過搜索來解釋這一點,以找到有意義的結果。 – Donglecow