2013-07-28 117 views
1

有没有一种更优雅的方式在Ruby中编写它?如何连接条件

def tutorial_completed? 
    people.any? && projects.any? && invoices.any? 
end 
+0

视的*优雅*,你可以使用'和'而不是定义' &&':) – tessi

回答

2
def tutorial_completed? 
    [people, projects, invoices].all?(&:any?) 
end 
+3

只是好奇,是不是原来的版本更多比这更可靠吗? –

+0

@MarcinDoliwa号 – sawa

+4

我不特别喜欢这种形式,因为它涉及创建一个中间数组。我也认为它的可读性较差,但这是一个意见问题。 –

1

我会做如下:

[people,projects,invoices].all? {|i| i.any? } 

演示

people = [true] 
projects = [false] 
invoices = [true,12] 
[people,projects,invoices].all? {|i| i.any? } 
# => false 
+0

非常感谢您的帮助 – Tintin81