#ruby
#ruby
Вопрос:
У меня есть это условие:
arr1 = [1, 2, 3, 4]
arr1.each do |num|
if num == arr1.last
print "#{num}n"
exit
else
print "#{num} x "
end
end
и я должен напечатать это как переменную, возможно, с именем num_printer, чтобы, если я напишу
puts num_printer
он должен напечатать это
1 x 2 x 3 x 4
Но я не знаю, как это сделать.
Кто-нибудь может мне помочь?
Комментарии:
1. Я не вижу
num_printer
определенного метода…2. » возможно , вызывается num_printer» @orde…
Ответ №1:
Существуют более простые способы сделать это, как указывает Maxim в своем ответе, но чтобы ответить на ваш вопрос, вы могли бы выполнить это, инициализировав пустую строковую переменную, а затем в своем each
блоке добавив текст к переменной вместо ее печати:
arr1 = [1, 2, 3, 4]
nums_str = ""
arr1.each do |num|
if num == arr1.last
nums_str << num.to_s
else
nums_str << "#{num} x "
end
end
puts nums_str
# => 1 x 2 x 3 x 4
Смотрите Это на repl.it : https://repl.it/@jrunning/ArcticDeficientArchitecture
Комментарии:
1.
arr1.last
подозрительно — что, если перед последним есть еще 4?2. @steenslag Я согласен, но это вопрос к OP.
Ответ №2:
По сути, вы хотите вставить что-то (‘x’ в вашем случае) между элементами и вывести результат. Используйте соединение
puts arr1.join(' x ')