我有当查找返回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