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
変数v
はfor
式の外側からアクセスできてしまう。
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'])]))
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
- Ruby 3.0.2