Array.newとブロック

初期値を定めるために、Array.newにブロックを与えることができます。

a = Array.new(7) do |i|
  (?A + i).chr
end

p a         #=> ["A", "B", "C", "D", "E", "F", "G"]

上と同じことは、以下のプログラムでも書けます。

a = ("A".."G").to_a
p a         #=> ["A", "B", "C", "D", "E", "F", "G"]

("A".."G")はRangeオブジェクトです。

p ("A".."G").class          #=> Range

ね?