ich über den folgenden kam, während über das Lesen, wie einfach es ist, Methoden in Ruby neu zu definieren:Ist die Längenmethode von Ruby ein Symbol? Warum ist die Länge manchmal die gleiche wie die Länge?
class Array
alias :old_length :length
def length
old_length/2
end
end
puts [1, 2, 3].length
Sicher, es ist eine schlechte Idee, aber es macht den Punkt. Aber es stört mich, dass wir so einfach zwischen :length
und length
und :old_length
und old_length
wechseln können. Also habe ich es auf diese Weise versucht:
class Array
alias old_length length
def length
old_length/2
end
end
puts [1, 2, 3].length
Es funktioniert ganz gut - anscheinend genau wie die erste Version. Ich habe das Gefühl, dass ich etwas übersehen habe, aber ich bin mir nicht sicher, was es ist.
Also, in einem Nutsell, warum sind :name
und name
austauschbar in diesen Fällen?
Perfekt: das hilft sehr, und es ist nicht so offensichtlich, dass ich mich schlecht fühle, weil ich es nicht schon weiß. – Telemachus