Когда я запускаю следующее в основной среде в irb или pry,
return "foo"
Я получаю:
LocalJumpError: unexpected return
, что ожидается. Но когда я пишу этот код в отдельном файле foo.rb
, и делаю:
$ ruby foo.rb
в консоли завершается без каких-либо сообщений об ошибках.
Что происходит в последнем случае?
Я подумал, что возникшая ошибка может быть удалена молча, и попробовал следующее в отдельном файле:
begin
return "foo"
rescue Exception => e
p e
end
и выполнил его с консоли, но это также не привело к ошибке.
Когда я помещаю код в такую среду, как модуль, он возвращает ошибку:
module A
return "foo" # >> Invalid return in class/module body
end