gpt4 book ai didi

grails - 与三元和猫王混淆

转载 作者:行者123 更新时间:2023-12-02 13:53:00 29 4
gpt4 key购买 nike

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

我期待猫王的行为与三元运算符完全一样......?

谢谢!

最佳答案

这将返回 user如果用户不为 null 并且 user.address计算结果为 true :

return user?.address?user:null 

这将返回 user.address如果用户不为 null 并且 user.address计算结果为 true
return user?.address?:null 

我假设 user.address是 bool 值吗?所以第二个尝试返回一个 bool 值,可能是你说的返回 User 的方法。在定义中

关于grails - 与三元和猫王混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12004738/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com