在阅读有关在 Ruby 中重新定义方法是多么容易时,我遇到了以下问题:
class Array
alias :old_length :length
def length
old_length / 2
end
end
puts [1, 2, 3].length
当然,这是一个坏主意,但它说明了这一点。但是让我很困扰的是,我们在:length
andlength
和:old_length
and之间切换old_length
如此容易。所以我这样尝试:
class Array
alias old_length length
def length
old_length / 2
end
end
puts [1, 2, 3].length
它工作得很好——显然就像第一个版本一样。我觉得我缺少一些明显的东西,但我不确定它是什么。
那么,简而言之,为什么在这些情况下可以互换:name
?name