当定义一个虚拟方法时,传递所有参数来完成这项工作时,这似乎更加出乎意料。这是以下作品:
def method_missing(ago, *lokatoj, &bloko)
mistrafe(ago, *lokatoj, &bloko)
end
def mistrafe(ago, *lokatoj, &bloko)
# faru ion
end
虽然以下没有
alias mistrafe method_missing
为什么会这样?
一般来说,您希望method_missing
(由 Ruby 内部调用(是mistrafe
的别名,反之亦然。您在mistrafe
中有一个实现,并且希望重新分配method_missing
调用它。
也就是说,以下内容将起作用:
alias method_missing mistrafe
请参阅别名文档。