同じインデントレベルを持つ2つの連続した「end」キーワードがあるとエラーのように見えますが、関数定義などを含むモジュールの最後でこれを回避するには、モジュールのコンテンツ全体(通常はファイル全体を意味します)をインデントする必要があります)。 ファイルがモジュール宣言で始まる場合、一致する「終了」がファイルの最後に暗黙的に提供されていると見なすことができませんか?
これに対する私の「鉛筆を使う」解決策は、常に次のようにmodule
続くend
を書くことです。
module Foo
function bar()
# do stuff
end
end # module
はい、これが特別な場合の価値があるかどうかはわかりません。 また、ネストされたモジュールとの混同がさらに激しくなります---ファイルの終わりで開いているすべてのモジュールを閉じる必要がありますか、それとも最も外側のモジュールのみを閉じる必要がありますか?
将来のある時点で、ファイルにmodule Foo ... end
を書き込む必要がないモジュール読み込みメカニズムを検討したいと思うかもしれません。これには、他の利点もある可能性があります。
最も参考になるコメント
これに対する私の「鉛筆を使う」解決策は、常に次のように
module
続くend
を書くことです。