我试图组合一种方法来重复一个单词或短语的t
时间。我找到了一种更好的方法,但仍然不确定为什么这个方法会像以前那样。
# repeats the word s t times for a default of 2
def repeat s, t = 2
say = s
t -= 1
t.times { say << ' ' + s }
say
end
repeat('hi', 1) # => 'hi'
repeat('hi', 2) # => 'hi hi'
repeat('hi', 3) # => 'hi hi hi hi' [4x]
repeat('hi', 4) # => 'hi hi hi hi hi hi hi hi' [8x]
repeat('hi', 5) # => 'hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi' [16x]
在times
块内部,似乎s
被设置为与say
每次迭代后相同的东西。为什么会出现这种行为?