Il y a print
, put
et p
comme fonctions de sortie d'une chaîne de caractères sur la console dans Ruby, mais j'ai essayé de résumer les différences à ma manière.
Version confirmée: ruby 2.6.6p146 (2020-03-31 révision 67876) [x64-mingw32]
print
print
imprime la chaîne de caractères telle quelle. Si un objet est passé, il imprime la chaîne retournée par la méthode .to_s
de l'objet.
print "abc"
print "def"
# => abcdef
Pour le caractère de saut de ligne \ n
et le caractère de tabulation \ t
, si vous les mettez entre guillemets simples
'', ils seront échappés et affichés sous forme de caractères, et si vous les entourez de guillemets doubles"
, ils seront interprétés comme des sauts de ligne et des tabulations, respectivement. indiquer.
print 'a\nb\tc'
# => a\nb\tc #Les guillemets simples n'interprètent pas les sauts de ligne et les tabulations
print "d\ne\tf"
# => d #Les guillemets doubles interprètent les sauts de ligne et les tabulations
# => e f
Si un tableau ou un hachage est spécifié, il sera affiché dans le format défini.
a = [ 1, 2, 3, "4", "5", "abc" ]
b = [ a: "a1", b: "b1", c: "c1" ]
c = [ [1,2], [3,4],5 ]
print a,b,c
# => [1, 2, 3, "4", "5", "abc"][{:a=>"a1", :b=>"b1", :c=>"c1"}][[1, 2], [3, 4], 5]
puts
met
est affiché de la même manière que print
. La grande différence est qu'un saut de ligne est ajouté à la fin. Il en va de même pour la gestion des guillemets simples et doubles.
print "abc"
print "def"
# => abc
# => def
puts 'a\nb\tc'
# => a\nb\tc #Les guillemets simples n'interprètent pas les sauts de ligne et les tabulations
puts "d\ne\tf"
# => d #Les guillemets doubles interprètent les sauts de ligne et les tabulations
# => e f
Si vous spécifiez un tableau ou un hachage, la sortie sera très différente de print
. Le tableau est développé et produit avec des sauts de ligne pour chaque élément, et la chaîne de caractères n'est pas entre guillemets. Dans le cas du hachage, il est affiché sans crochets «[]». Dans un tableau imbriqué, les éléments sont affichés séparément et les informations imbriquées ne peuvent pas être saisies.
a = [ 1, 2, 3, "4", "5", "abc" ]
b = [ a: "a1", b: "b1", c: "c1" ]
c = [ [1,2], [3,4],5 ]
puts a,b,c
# => 1 #Tous les éléments sont développés et affichés
# => 2
# => 3
# => 4 #Les guillemets de chaîne ne sont pas affichés.
# => 5
# => abc
# => {:a=>"a1", :b=>"b1", :c=>"c1"} #Il n'y a pas de crochets.
# => 1 #Toutes les séquences imbriquées sont développées au même niveau
# => 2
# => 3
# => 4
# => 5
p
p
imprime la chaîne retournée par la méthode .inspect
au lieu de .to_s
lorsque l'objet est passé. De plus, un saut de ligne est ajouté à la fin de chaque ligne. La différence est que la chaîne de caractères est placée entre guillemets et sortie.
p "abc"
p "def"
# => "abc"
# => "def"
Le caractère de saut de ligne «\ n» et le caractère de tabulation «\ t» ne sont pas interprétés comme des sauts de ligne et des tabulations. Cependant, si vous le mettez entre guillemets simples `` , la version échappée de
\ ʻest affichée, et si vous la mettez entre guillemets doubles"
, les caractères sont affichés tels quels sans échapper.
p 'a\nb\tc'
# => "a\\nb\\tc" # \Pour échapper à\\Sera.
p "d\ne\tf"
# => "d\ne\tf" #Les guillemets doubles interprètent les sauts de ligne et les tabulations
Si un tableau ou un hachage est spécifié, il sera affiché dans le format défini.
a = [ 1, 2, 3, "4", "5", "abc" ]
b = [ a: "a1", b: "b1", c: "c1" ]
c = [ [1,2], [3,4],5 ]
p a,b,c
# => [1, 2, 3, "4", "5", "abc"]
# => [{:a=>"a1", :b=>"b1", :c=>"c1"}]
# => [[1, 2], [3, 4], 5]
--puts
, p
ajoute automatiquement un saut de fin, mais pas print.
--p
est affiché avec la chaîne de caractères entre guillemets.
--print
, met
interprète et affiche les caractères spéciaux tels que les sauts de ligne \ n
et tab \ t
, mais p
n'interprète pas les caractères spéciaux et les affiche comme des chaînes de caractères telles quelles. ..
--print
, p
imprime un tableau ou un hachage tel que défini, mais met
développe le tableau et l'affiche avec un saut de ligne pour chaque élément.
Au début, je pensais que «put» était une version avec un saut de ligne dans «print», mais il y avait une grande différence dans l'affichage du tableau. Si vous voulez sortir le tableau entier et le vérifier, il semble préférable de ne pas utiliser put
.
Dans les livres et sur le net, il existe de nombreuses descriptions indiquant que " p
est pour le débogage ", mais il est certainement plus facile de voir si vous n'interprétez pas les caractères spéciaux lors du débogage, il est facile de faire la distinction entre les chaînes de caractères et les valeurs numériques, et il est facile à saisir. Donc, il est sûrement préférable de vérifier avec la fonction p
lors du débogage.
Recommended Posts