比如,
alias :old_plus :+
的用法是正确的,但是,如果
old = :+
new = :old_plus
alias new old
就会报错。 请教大家,谢谢。
我去,你知道 alias 的用法?alias 是对 method 的,不是对两个变量好吧 http://blog.bigbinary.com/2012/01/08/alias-vs-alias-method.html
知道对 method 使用的,比如下面这段代码,想把 :old_plus 和 :+ 先赋给变量,再来使用 alias,就会报错。
class Fixnum
alias :old_plus :+
def +(value)
self.old_plus(value).old_plus(1)
end
end
找到了一个 workaround
old = :+
new = :plus__
Fixnum.class_eval "alias #{new} #{old}"