我有當查找返回NULL處理的默認值下面的代碼混淆三元和貓王
def user = User.find('admin')
return user?.address?user:null
這個作品使用Elvis操作符就像當預期
但是:
def user = User.find('admin')
return user?.address?:null
我收到一個異常:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'true' with class 'java.lang.Boolean' to class 'com.code.User'
我曾期待貓王行爲完全像三元運算符....?
謝謝!
其他語言調用?:「null-coalescing」操作符。只有Groovy使用內部笑話名稱「Elvis」運算符。 – 2012-08-17 14:32:47
這一切都很好,但問題不在於其他語言,而且據我所知,Groovy稱它爲貓王操作符。實際上,「無效合併」一詞不會出現[他們網站上的任何地方](https://www.google.com/search?q=site:groovy.codehaus.org+%22null+coalescing%22&tbs=li:1 )。 – 2012-08-17 15:40:54
@Justin我爲那些不熟悉「Elvis op」的人所知的人添加了這個信息。 – 2012-08-18 02:01:31