我写了一个 rake task,以下程式码是精简过的,这是会出现 Unexpected Return (LocalJumpError)
错误的,似乎是因为 block 里面不能用 return
的缘故:
namespace :reminder do
desc "reminder todo"
task todo: :environment do
wday = Time.zone.now.wday
return if wday == 6
# do something...
end
end
我可以把它包在 unless
或 if
条件式里面来解决这个问题:
unless wday == 6
# do something
end
可能是我写 Javascript 的习惯,我不喜欢用 if
这样层层嵌套,尤其是如果我这里条件更复杂的时候,想要提早用 return 提早返回,减少嵌套的发生,请问我还可以怎么写呢?
谢谢!