お題
- 1~100までの整数が昇順に並ぶ配列aを作れ
a[0]
は1、a[99]
は100とする
回答
def make_ary(ary) 1.upto(100) { |n| ary.push(n) } end ary = [] make_ary(ary) p ary
説明
1.upto(100)
で「1から100まで繰り返す」という意味になる。
ブロックの中でary.push(n)
をして、配列の後ろに要素を足していく。
反省
to_a
を使えばもっとシンプルだった。
(1..100).to_a
これでもよかった。
# 引数を配列のインデックスとしている ary = [] 100.times { |n| ary[n] = n + 1 } p ary
いろんな書き方で書けるというのは、それを深く理解してるってこと。 つまり、まだまだ理解が浅い。
100本ノックも10個を超えたところ。まだまだこれから。