通常要覆盖一个方法,我只想对它进行别名:
alias original_method_name method_name
我现在遇到了一个看起来像这样的方法:
def []=(key, value)
end
而且我不知道如何为这一个添加别名。
答案 0 :(得分:3)
也许我不明白这个问题,但是
>> class Hash
.. alias :foobar :[]=
.. end
=> nil
>> h = Hash.new
=> {}
>> h.foobar(:a, 1)
=> 1
>> h
=> {:a=>1}
答案 1 :(得分:3)
别名接受符号作为参数,因此,这是您要执行的操作的示例:
class Toto
def initialize
@t = {}
end
def []=(k,v)
@t[k] = v
end
alias assign :[]=
end
t = Toto.new
t[1] = 5
t.assign(3, 4)
puts t.inspect
显示:#<Toto:0x29b8318 @t={1=>5, 3=>4}>
另外,你得到了别名的参数顺序错误,它是alias new_name old_name