在Ruby中打印

时间:2018-10-19 10:28:05

标签: ruby

当我在内部使用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 :(得分:2)

您不需要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..."