2
我想知道關於模塊中定義的方法在被定義爲module_functions,類方法(即'def self.foo')和實例方法(即'def foo')時如何限定範圍的具體細節模塊函數,實例方法和ruby模塊中的類方法有什麼區別?
將模塊包含到不同類中時,行爲會如何改變?
我一直在互聯網上搜索,一直沒能找到一個很好的解釋。
我想知道關於模塊中定義的方法在被定義爲module_functions,類方法(即'def self.foo')和實例方法(即'def foo')時如何限定範圍的具體細節模塊函數,實例方法和ruby模塊中的類方法有什麼區別?
將模塊包含到不同類中時,行爲會如何改變?
我一直在互聯網上搜索,一直沒能找到一個很好的解釋。
在模塊上定義了一個類(或更恰當的說,模塊)方法,並將該模塊作爲接收方調用。當include YourModule
時,它不會混入。
當你做include YourModule
時,模塊的實例方法作爲調用者的實例方法混合在一起。
module_function
方法採用您在模塊中定義的實例方法,使其成爲私有的(並且在混合時它將保持私有狀態),並且還將其轉換爲公共模塊方法。
你可以通過提供一些例子和解釋讓你的答案更容易理解。 –