Array の値を x で詰めたい(埋めたい)ときに便利なメソッド。

Array#fill (Ruby 3.1 リファレンスマニュアル)

全ての要素を特定の値で埋める。

ary = [1,2,3,4,5]
ary.fill(0) #=> [0, 0, 0, 0, 0]

一部の要素を特定の値で埋める。

ary = [1,2,3,4,5]
ary.fill(0, 2) #=> [1, 2, 0, 0, 0]

Range で指定も可能。

ary = [1,2,3,4,5]
ary.fill(0, 1..10) #=> [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

注意

このメソッドが val のコピーでなく val 自身をセットすることに注意してください。 val の代わりにブロックを指定するとブロックの評価結果を値とします。

a = [0, 1, 2, 3, 4]
a.fill("a")
p a #=> ["a", "a", "a", "a", "a"]
a[0].capitalize!
p a #=> ["A", "A", "A", "A", "A"]