Pourquoi cette Ruby objet de deux to_s et d'inspecter les méthodes qui font la même chose? Ou, de sorte qu'il semble.
L' p
des appels inspect
, et met/impression des appels to_s
pour la représentation de son objet.
Si je lance
class Graph
def initialize
@nodeArray = Array.new
@wireArray = Array.new
end
def to_s # called with print / puts
"Graph : #{@nodeArray.size}"
end
def inspect # called with p
"G"
end
end
if __FILE__ == $0
gr = Graph.new
p gr
print gr
puts gr
end
Je reçois
G
Graph : 0
Graph : 0
- Alors, pourquoi ne Rubis ont deux fonctions faire la même chose? Ce qui fait la différence entre
to_s
etinspect
? - Et quelle est la différence entre
puts
,print
, etp
?
Si j'en commentaire l' to_s
ou inspect
de la fonction, je reçois comme suit.
#<Graph:0x100124b88>
#<Graph:0x100124b88>