如果我想要的是添加方法“好吗?”哈希,但只适用于C1类和它的子类。怎么做? 例如
class C1
class Hash
def ok?
return 'nested hash ok'
end
end
def m1
return Hash.new.ok? #works
end
def m2
return {}.ok? #not works
end
end
<<In other file>>
class C2 < C1
def m1_1
return {}.ok? #not works
end
end
如何添加'{} .ok?'就在C1&amp;它是每个文件中不需要模块的子类C2,但是像inhirt
这样的某种方式答案 0 :(得分:0)
这不会向::Hash
class C1
class Hash
def ok?
return 'nested hash ok'
end
end
end
它会创建一个与C1::Hash
无关的新类Hash
。如果你想修补补丁::Hash
而不是全局范围,请看看:
http://yehudakatz.com/2010/11/30/ruby-2-0-refinements-in-practice/
但是,这仅适用于ruby 2.0.0。