7

ネストされたモジュールを再度開くと、使用する構文によって結果が異なるのはなぜですか? たとえば、これは正常に機能します。

module A
  module E
  end
end
module A
  module E
    def E.e
    end
  end
end

でもこれは:

module A
  module E
  end
end
module A::E
  def E.e
  end
end

エラーが発生します:

reopen.rb:6:in `<module:E>': uninitialized constant A::E::E (NameError)
from reopen.rb:5:in `<main>'

(誰かがこれを指摘する前に、回避策はselfEe を定義するときにモジュール名の代わりに使用することですが、それはこの投稿の実際のポイントではありません。)

4

1 に答える 1