1
On dirait que dans ruby 1.9.2 si to_s est défini, inspect retournera à_s ?? Pourquoi cela changerait-il?Pourquoi to_s dans Ruby 1.9.2 at-il changé de comportement?
Ce:
class ToSClass
def to_s
"#{self.class.name} to_s called"
end
end
class InspectClass
def inspect
"#{self.class.name} inspect called"
end
end
class BothClass
def inspect
"#{self.class.name} inspect called"
end
def to_s
"#{self.class.name} to_s called"
end
end
c1 = ToSClass.new
puts c1.inspect
puts c1.to_s
c1 = InspectClass.new
puts c1.inspect
puts c1.to_s
c1 = BothClass.new
puts c1.inspect
puts c1.to_s
sorties: ce
ToSClass to_s called
ToSClass to_s called
InspectClass inspect called
#<InspectClass:0x316baf8>
BothClass inspect called
BothClass to_s called
Voulez-vous dire "J'ai lancé votre programme sur 1.9.2 et 1.8.7" ou "1.9.2 et 1.9.1"? –
Je viens de le tester en 1.8.7 et les résultats sont les mêmes. Si seulement 'to_s' est surchargé,' inspect' l'appellera. – Chuck
Oups, j'ai collé la mauvaise sortie du programme. Je vais mettre à jour ça. – AboutRuby