単語やフレーズを何度も繰り返す方法をまとめてみました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
なぜこの動作が発生するのですか?