groovy – 仅在if语句中的变量不为null时才测试
发布时间:2020-12-14 16:30:26 所属栏目:大数据 来源:网络整理
导读:我有以下方法,我只想测试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
我有以下方法,我只想测试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)) 即使这样不行,所有你需要的是关闭来返回适当的价值,对吧?没有必要创建两个单独的查找调用,只需使用一个中间变量. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |