Ich habe eine Klasse Word
:Wie kann 'String # reverse' Nicht-String-Objekte zurückgeben?
class Word < String
end
w = Word.new("level")
y = w.reverse
y.class # => Word
1) Wie ist das möglich? Word#reverse
sollte einen String
zurückgeben, da er String#reverse
erbt, der eine String
zurückgibt.
I hinzugefügt diesen Code:
class Word < String
attr_accessor :s
def magic
@s = Time.now
end
end
y.magic
sleep(5)
w.magic
y.s == w # => false
y == w # => true
2) w
und y
Word
sind und gleich sind, damit sie beide mit den gleichen Methoden, wie magic
haben. Wo hat y
die magic
Methode erworben?
3) Wie lautet y == w
ergibt true
, während y.s
und w.s
ungleiche Werte zurückgeben?
ich bin nicht sicher, was Ihre zweite Frage bedeutet. – sawa