我是新手,作为练习,我必须对将数组作为参数的方法进行硬编码,如果该数组中的所有元素都是真实的,则返回true。如果不是,则为false。
def reduce_to_all_true(array)
array.each do |index|
if !index
return false
end
return true
end
end
如果ANY元素为true,则返回true ...
同时,以下内容:
def reduce_to_all_true(array)
array.length.times { |index|
if !array[index]
return false
end }
return true
end
表现符合预期。我无法解决的原因是什么?以我公认的有限理解,它们是等效的解决方案。有人可以帮我理解吗?谢谢!
在第一种方法中,return true
在#each
循环内,因此它将仅检查第一个元素并返回true或false。在第二个循环中,它在循环之后,因此只有在循环完全结束时它才返回true。