在ruby中,通过循环内的函数移动到循环的下一次迭代
我试图编写一段代码,在循环中调用一个方法时,我可以转到循环的下一个迭代 在示例代码中,这就是我要做的在ruby中,通过循环内的函数移动到循环的下一次迭代,ruby,for-loop,next,Ruby,For Loop,Next,我试图编写一段代码,在循环中调用一个方法时,我可以转到循环的下一个迭代 在示例代码中,这就是我要做的 def my a if a > 3 next end end x = [1,2,3,4,5,6,7] for i in x my i print i end 这会导致语法错误 实现这一点的一种方法是引发错误并捕获它 def my a if a > 3 raise "Test" end end x
def my a
if a > 3
next
end
end
x = [1,2,3,4,5,6,7]
for i in x
my i
print i
end
这会导致语法错误
实现这一点的一种方法是引发错误并捕获它
def my a
if a > 3
raise "Test"
end
end
x = [1,2,3,4,5,6,7]
for i in x
begin
my i
print i
rescue Exception => e
#do nothing
end
end
但例外情况是昂贵的。我不想从函数中返回任何东西,也不想在函数中设置标志变量,因为我想保持代码中没有这些标志
有什么想法吗?让函数影响调用者的控制流的一种Ruby方法是调用者向函数传递一个块,然后函数可以执行(或不执行):
另请参见:顺便说一句:
x.each do | i |
对于x中的i来说比更为惯用的Ruby。见:
def my a
yield unless a > 3
end
x = [1,2,3,4,5,6,7]
for i in x
my i do
print i
end
end
# => 123