2
通常覆盖一个方法我只想别名是:别名DEF [] =(键,值)红宝石方法
alias original_method_name method_name
现在我所遇到的,看起来像这样的方法:
def []=(key, value)
end
而我不知道如何别名这一个。
通常覆盖一个方法我只想别名是:别名DEF [] =(键,值)红宝石方法
alias original_method_name method_name
现在我所遇到的,看起来像这样的方法:
def []=(key, value)
end
而我不知道如何别名这一个。
也许我不明白的问题,但
>> class Hash
.. alias :foobar :[]=
.. end
=> nil
>> h = Hash.new
=> {}
>> h.foobar(:a, 1)
=> 1
>> h
=> {:a=>1}
别名接受的符号作为参数,因此,这里是你想要做什么的例子:
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
谢谢你的伎俩。我没有想过把它作为一个符号:) – 2011-02-04 10:53:17
冒号方括号表示法有什么作用? :[] = <---那。 – Danny 2012-07-29 22:22:30