有可能.有吗?两个块的方法



我有这样的代码来确定返回的类:

def level_class(projects)
return 'badge-danger' if projects.any?(&:suspicious_content?) || projects.any?(&:tiny_description?)
'badge-info'
end

是否可以"合并"&:suspicious_content?&:tiny_description?

这不起作用,但像projects.any?(&:suspicious_content? || &:tiny_description?)这样的东西会很酷!

正如您的问题评论所指出的那样,"合并"没有意义。但你实际上可以实现与后一种情况相同的事情:

projects.any?{ |i| i.suspicious_content? || i.tiny_description? }

或者,如果你想多次使用一个块,你可以做如下操作:

b = lambda{ |i| i.suspicious_content? || i.tiny_description? }
projects.any? &b

最新更新