groovy – 仅在if语句中的变量不为null时才测试

groovy – 仅在if语句中的变量不为null时才测试,第1张

概述我有以下方法,我只想测试event.status属性,只有当状态已经传入: def findEvent(String desc, String status = null, Collection events) { return events.find { it.description == desc && \\If status is not 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时才测试所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1234917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存