Rubyでメソッドを再定義するのがいかに簡単かについて読んでいるときに、次のことに出くわしました。
class Array
alias :old_length :length
def length
old_length / 2
end
end
puts [1, 2, 3].length
確かに、それは悪い考えですが、それがポイントになります。:length
しかし、とととlength
を簡単に切り替えるのが気に:old_length
なりました。old_length
だから私はこのようにしてみました:
class Array
alias old_length length
def length
old_length / 2
end
end
puts [1, 2, 3].length
どうやら最初のバージョンと同じように、問題なく動作します。明らかに何かが欠けているように感じますが、それが何かはわかりません。
では、一言で言えば、これらの場合に:name
とが交換可能である理由は何ですか?name