2016-08-13 1 views
0

J'essaie de rendre mon code plus joli dans Ruby. J'ai utilisé beaucoup de "puts" comme ça;Au lieu d'utiliser beaucoup de "puts", comment utiliser "one puts" pour écrire de nombreuses chaînes en ruby ​​

puts "something 1" 
    puts "something 2" 
    puts "something 3" 

J'essaie d'utiliser un « puts » d'écrire tout cela avec le même format, je suis en train quelque chose comme ça, mais ça ne marche pas;

puts << "something 1" << "something 2" << "something 3" 

Pourriez-vous s'il vous plaît me suggérer la meilleure façon d'écrire ces choses en utilisant beaucoup de "puts"?

Répondre

1
somethings = ['something 1', 'something 2', 'something 3'] 
puts somethings.join("\n") 
+0

Est-il possible de créer une matrice sans? Il suffit de chercher une syntaxe, d'écrire un put et d'imprimer deux cordes avec juste un puts. Il y a deux ou trois endroits différents, je ne veux pas créer un tableau pour chacun d'entre eux. –

+0

voulez-vous une nouvelle ligne pour le résultat entier, ou une nouvelle ligne différente pour chaque chaîne? Il existe plusieurs façons de procéder, telles que les hérédocs, l'interpolation de chaînes et la concaténation de chaînes (c'est-à-dire "bonjour" + "monde") –

0

Utilisez print pour imprimer toutes les variables dans la même ligne, ou puts avec saut de ligne:

x = "something" 
y = 1 
z = true 

print x,y,z 
print "\n" 
puts x,y,z 

sortie:

something1true 
something 
1 
true 

Si c'est tout chaîne, vous pouvez toujours les concaténer en utilisant << ou + comme ceci:

puts "something1" + "something2" + "something3" 
puts "something1" << "something2" << "something3" 
0
# if you do create an array variable, then here are two more options 
stuff = ["something1", "something2", "something3"] 
stuff.each { |i| puts i } # on seperate lines 
puts ("%s " * stuff.size) % stuff # all on one line 


# you can still make use of arrays even without a seperate variable 
puts ["something1", "something2", "something3"] # on seperate lines 
puts ["something1", "something2", "something3"].join(' ') # on one line 
puts "%s %s %s " % ["something1", "something2", "something3"] # same as the second option above really 

# then there is just concat as mentioned above, but it seems ugly if you want to include spaces 
puts "something1" + " " + "something2" + " " + "something3" # ugly imho