печать внутри кладет в рубин - PullRequest
0 голосов
/ 19 октября 2018

Когда я использую print внутри, помещает итератор, который печатается в и каждого отпечатка.Почему это происходит?

def hop_hop_hop(number_of_exercises)
  for i in (1..number_of_exercises)
    puts "#{i.times { print 'hop!' } } One more time..."
  end
end

hop_hop_hop(3)

Я хочу это:

hop! One more time...
hop! hop! One more time...
hop! hop! hop! One more time...

Код дает мне:

hop!1 One more time...
hop! hop!2 One more time...
hop! hop! hop!3 One more time...

1 Ответ

0 голосов
/ 19 октября 2018

Вам не нужно print внутри puts.

Попробуйте:

puts "#{'hop! ' * i}One more time..."

И почему число поступает на выход в вашем примере?Это потому, что i.times возвращает i, который в вашем примере равен 3.Итак, по сути, ваш пример делал это:

def hop_three_times
   print 'hop!'
   print 'hop!'
   print 'hop!'
   return 3
end

i = hop_three_times
puts "#{i} One more time..."
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...