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时才测试所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)