gpt4 book ai didi

ruby - 重试在控制流中不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 17:52:39 36 4
gpt4 key购买 nike

我正在尝试执行以下代码:

animals = %w(dog cat horse goat snake frog)
count = 0

for animal in animals
puts "The current animal is #{animal}"
break if count == 10
count += 1
retry if animal == 'horse'
end

当我尝试在 IRB 上执行文件时,我得到以下输出:

2.0.0-p247 :001 > load 'loopexit.rb'
SyntaxError: loopexit.rb:19: Invalid retry
from loopexit.rb
2.0.0-p247 :002 >

谁能告诉我这里可能出了什么问题?

最佳答案

rescue 子句中,retry导致 Ruby 返回到封闭代码的顶部(begin 关键字,或方法或 block 的顶部)并再次尝试执行代码。

但是你需要使用next .它将一个 iterator,或者一个 whileuntil block ,无条件地且不执行任何内容地添加到 next 迭代可能会保留在 block 中。

retry 不是在 loops 内部使用。

您可以编写如下代码:

for animal in animals
next if animal == 'horse'
puts "The current animal is #{animal}"
break if count == 10
count += 1
end

关于ruby - 重试在控制流中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21414376/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com