2016-08-13 6 views
0

Я пытаюсь красивее моего кода в Ruby. Я использовал много «пометок», как это;Вместо использования множества «ставит», как использовать «один кладет», чтобы написать много строк в рубине

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

Я пытаюсь использовать один «путы», чтобы написать все это в том же формате, что я пытаюсь что-то вроде этого, но он не работает;

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

Не могли бы вы предложить мне лучший способ вместо того, чтобы писать эти вещи, используя множество «ставит»?

ответ

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

Есть ли способ без создания массива am? Просто ищем синтаксис, написание puts и печать двух строк с помощью только puts.There пара ставит в пару разных мест, я не хочу создавать массив для каждого из них. –

+0

Вам нужна одна новая строка для всего результата или другая строка новой строки для каждой строки? Существует много способов сделать это, например, heredocs, интерполяцию строк и конкатенацию строк (т. Е. «Привет» + «мир») –

0

Использование print для печати всех переменных в одной и той же линии, или puts с новой строки:

x = "something" 
y = 1 
z = true 

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

выход:

something1true 
something 
1 
true 

Если это все строки, вы всегда можете Concat их используя << или + примерно так:

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