我想知道是否可以在Ruby中使用Proc
来跳过迭代?
我写了一段代码
def validation i
pr = Proc.new do |i|
if i < 3
next
end
end
pr.call(i)
end
(1..5).each do |i|
validation i
puts "#{i} is bigger than 3"
end
and I expected期望something like this as result结果:
3 is bigger than 3
4 is bigger than 3
5 is bigger than 3
但我得到的是
那么,是否可以在Proc
中使用next
来跳过外部迭代,或者有其他方法?
1条答案
按热度按时间jjjwad0x1#
不能在
validation
方法中调用next
,因为循环是外部的。您可以在依赖于validation
调用的(1..5).each
循环中使用next
。下面的代码会产生您想要的结果。编辑-代码已重构,以适当使用
Proc
。