5-3-2 eachメソッドを使ってみよう

配列にeachメソッドを使ったプログラムを記述する

テキストエディタを開いて以下のプログラムを記述し、ファイル名をeach_array.rbとして保存します。

# eachメソッドを使ってみよう
[1, 2, 3].each do |i|
  p i
end

保存したプログラムを実行する

コマンドライン上でプログラムを指定して実行します。1から3までの数値が表示されます。

$ ruby each_array.rb
1
2
3

短くした省略形のプログラムを実行する

irb上で、eachメソッドのdoendブロックの省略形である{}を用いて1行でプログラムを記述し、実行します。

手順2同様に、1から3までの数値が表示されます。

irb(main):001:0> [1, 2, 3].each { |i| p i }
1
2
3
=> [1, 2, 3]

ハッシュにeachメソッドを使ったプログラムを記述する

テキストエディタを開いて以下のプログラムを記述し、ファイル名をeach_hash.rbとして保存します。

# eachメソッドを使ってみよう
{ height: 170, weight: 60 }.each do |array|
  p array
end

保存したプログラムを実行する

コマンドライン上でプログラムを指定して実行します。ハッシュのキー名と値のペアが順番に表示されます。

$ ruby each_hash.rb
[:height, 170]
[:weight, 60]

短くした省略形のプログラムを実行する

irb上で、eachメソッドのdoendブロックの省略形である{}を用いて1行でプログラムを記述し、実行します。

手順5同様に、ハッシュのキー名と値のペアの配列が順番に表示されます。

irb(main):001:0> { height: 170, weight: 60 }.each { |array| p array }
[:height, 170]
[:weight, 60]
=> {:height=>170, :weight=>60}

ハッシュのキーと値を別々に渡すようプログラムを修正する

eachメソッドのブロックに渡す変数を1つから2つに変更してirb上で実行します。

手順6とは実行結果が異なり、ハッシュのキー名と値がそれぞれ順番に表示されます。

irb(main):001:0>  { height: 170, weight: 60 }.each { |key, value| p key; p value }
:height
170
:weight
60
=> {:height=>170, :weight=>60}