Наличие двух последовательных "конечных" ключевых слов с одинаковым уровнем отступа выглядит как ошибка, но во избежание этого в конце модуля, содержащего, например, определения функций, необходимо сделать отступ для всего содержимого модуля (что обычно означает весь файл ). Если файл начинается с объявления модуля, можем ли мы считать, что соответствующий «конец» неявно указан в конце файла?
Мое решение "просто карандашом" состоит в том, чтобы всегда писать end
, следующее за module
следующим образом:
module Foo
function bar()
# do stuff
end
end # module
Да, я не уверен, что это стоит особого случая. Еще больше сбивает с толку вложенные модули - должен ли конец файла закрывать все открытые модули или только самый внешний?
В какой-то момент в будущем мы можем захотеть рассмотреть механизм загрузки модуля, при котором вам не нужно писать module Foo ... end
в файле, что может иметь и другие преимущества.
Самый полезный комментарий
Мое решение "просто карандашом" состоит в том, чтобы всегда писать
end
, следующее заmodule
следующим образом: