RubyのModule#includeメソッドのインクルードの順序について

Module#includeメソッドは、引数に複数のモジュールを指定できます。

複数のモジュールを指定したとき、インクルードの順序はrubyリファレンスマニュアルによると、次のように書かれています。

引数に複数のモジュールを指定した場合、 最後の引数から順にインクルードします。

instance method Module#include (Ruby 2.5.0)

実際に、複数のモジュールを引数に指定してみます。

module M1; end
module M2; end

class C
  include M1,M2
end

p C.ancestors
// => [C, M1, M2, Object, Kernel, BasicObject]

includeメソッドを複数回呼び出す場合は、呼び出した順にインクルードされます。

module M1; end
module M2; end

class C
  include M1
  include M2
end

p C.ancestors
// => [C, M2, M1, Object, Kernel, BasicObject]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください