【发布时间】:2020-04-18 01:09:10
【问题描述】:
我是新手,作为练习,我必须硬编码一个将数组作为参数的方法,如果该数组中的所有元素都是真值,则返回真值。如果不是,则为假。
def reduce_to_all_true(array)
array.each do |index|
if !index
return false
end
return true
end
end
如果任何元素为真,则返回真...
同时,以下内容:
def reduce_to_all_true(array)
array.length.times { |index|
if !array[index]
return false
end }
return true
end
按预期运行。我无法解决的问题是为什么?在我公认的有限理解中,它们是等效的解决方案。有人可以帮我理解这一点吗?谢谢!
【问题讨论】:
-
你的第一个例子使用
if index而不是if array[index]像第二个 -
@rossta 虽然在每个块中命名元素
index绝对是个坏主意,但index变量指的是元素而不是index本身。所以除了名字不好,没有问题 -
好点。我误读了。