我想Hash#[]=通过调用方法动态覆盖方法f.以下代码不起作用,因为方法内不允许类定义:
Hash#[]=
f
def f class Hash def []=(k, v) ... end end end
解决方法是放入class Hash一个单独的文件
class Hash
def f require 'my_hash.rb' end
我想知道是否有办法避免添加单独的文件.
def f Hash.send(:define_method, :[]=) do |x, y| ... end end