Groovy   发布时间:2022-04-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了groovy – 仅在if语句中的变量不为null时才测试大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下方法,我只想测试event.status属性,只有当状态已经传入:

def findEvent(String desc,String status = null,Collection events) {
        return events.find {
            it.description == desc && \\If status is not null: it.status == status
        }

        throw new Exception("Review Event Record Not Found: ${desc}")
}

我以为可以这样做,但似乎不起作用:

def findEvent(String desc,Collection events) {
        return events.find {
            it.description == desc && (status != null ?: {it.status == status})
        }

        throw new Exception("Review Event Record Not Found: ${desc}")
}

有什么办法可以做到吗?或者我必须回到这样的事情:

if (status != null) {
    return events.find {
        it.description == desc && it.status == status
    }
} else if (status == null) {
    return events.find {
        it.description == desc
    }
}

有没有一些最佳做法?

解决方法

我不相信这个表情是感性的.

猫王意思是“如果真实,使用价值,否则使用这个其他的东西”.

你的“其他事情”是一个关闭,值是status!= null,这两个都不是你想要的.如果状态为空,则Elvis说.如果不是,你会得到一个额外的关闭.

为什么你不能使用:

(it.description == desc) && ((status == null) || (it.status == status))

即使这样不行,所有你需要的是关闭来返回适当的价值,对吧?没有必要创建两个单独的查找调用,只需使用一个中间变量.

大佬总结

以上是大佬教程为你收集整理的groovy – 仅在if语句中的变量不为null时才测试全部内容,希望文章能够帮你解决groovy – 仅在if语句中的变量不为null时才测试所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。