やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

「Ruby プログラムの実行」を読む5(for, each)

 Rubyではfor式よりもeachメソッドがよく使われる。

成果物

情報源

for-in

for 変数 in オブジェクト [do]
  式
end
for v in [1,3,5]
  p v
end
for v in 1..5
  p v
end

 変数vfor式の外側からアクセスできてしまう。

Array#each

 Rubyでは大抵ループするときeachを使う。

[1,2,3].each {|i| p i}

 以下のようにも書ける。

[1,2,3].each do |i|
  p i
end

 変数iは内側からしかアクセスできない。

Array#each_with_index

 ところでインデックスを取得する方法はないのか? for文ではできないが、each_with_indexなら可能。

['A','B','C'].each_with_index {|v,i| p "#{i}:#{v}"}

 Pythonなら以下のように書いていたところである。

for i, v in enumerate(['A','B','C']):
    print f"{i}:{v}"
list(map(print, [f"{i}:{v}" for i, v in enumerate(['A','B','C'])]))

対象環境