是否可以在ruby中包含每个实例的模块?
即在Scala中,您可以执行以下操作.
val obj = new MyClass with MyTrait
Run Code Online (Sandbox Code Playgroud)
你可以在ruby中做类似的事情,或许类似于以下内容吗?
obj = Object.new include MyModule
Run Code Online (Sandbox Code Playgroud)
是的,请参阅Object#extend。所有对象都具有该extend
方法,该方法将模块列表作为其参数。使用模块扩展对象会将模块中的所有实例方法添加为扩展对象上的实例方法。
module Noise
def cluck
p "Cluck cluck!"
end
end
class Cucco
end
anju = Cucco.new
anju.extend Noise
anju.cluck
==> "Cluck cluck!"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2857 次 |
最近记录: |