2

モジュールで定義されたメソッドが module_functions、クラス メソッド (つまり 'def self.foo') およびインスタンス メソッド (つまり 'def foo') として定義されている場合に、そのメソッドがどのようにスコープされるかについての詳細を知りたいです。

モジュールを別のクラスに含めると、動作はどのように変化しますか?

私はインターネット上で掘り下げてきましたが、良い説明を見つけることができませんでした.

4

1 に答える 1

3

クラス (より正確にはモジュール) メソッドはモジュールで定義され、モジュールをレシーバーとして呼び出されます。すると混入しませんinclude YourModule

モジュールのインスタンス メソッドは、呼び出し元のインスタンス メソッドとして混在しますinclude YourModule

このmodule_functionメソッドは、モジュールで定義したインスタンス メソッドを受け取り、それをプライベートにし (混合されてもプライベートのままになります)、パブリック モジュール メソッドにも変換します。

于 2013-04-02T17:59:03.600 に答える