我有一个 rake 任务,我在开始时会做一些检查,如果其中一项检查失败,我想提前从 rake 任务返回,我不想执行任何剩余的代码。
我认为解决方案是在我想从代码返回的地方放置一个返回,但我收到以下错误
unexpected return
最佳答案
Rake 任务基本上是一个 block 。除了 lambda 之外, block 不支持返回,但您可以使用 next
跳到下一条语句,这在 rake 任务中与在方法中使用 return 具有相同的效果。
task :foo do
puts "printed"
next
puts "never printed"
end
或者您可以将代码移动到方法中并在方法中使用 return。
task :foo do
do_something
end
def do_something
puts "startd"
return
puts "end"
end
我更喜欢第二个选择。
关于ruby - 我如何从佣金任务中提早返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2316475/