Part10:続・繰り返し

マル「前回の繰り返しもオラがやったけど、今回は配列とハッシュ用に用意された繰り返し構文の話をするな」

マル「まずは配列からいくずら。配列の要素を順番に取り出していく書き方で、eachforと2種類あるんだ」

マル
ルビィ
ヨハネ

マル「これがeachを使ったパターンで、forよりこっちがよく使われると思うな」
ルビィ「配列が3要素だから3回ループして、こうなる、と・・・」
マル「do-endの部分をブロックって言うんだけど、そのブロックに配列の要素を1つづつ渡して実行してるんだな」
ヨハネ「whileと違って回数管理をしなくていいのは楽ね」

マル「全く同じ動きをするんだけど、forを使う書き方もあるずら」

マル「each使っておけば困らないと思うな」


マル「次はハッシュだけど、これも配列と似ているずら」

マル
152
ルビィ
154
ヨハネ
156

マル「違いは、キーと値のペアが配列で渡されるってことだな」
ヨハネ「ハッシュの中では"マル" => 152が1要素で管理されてるってことね」
マル「それがブロックに渡されるときは["マル", 152]っていう形になるんだ」

マル「これもforで書き直せるずら」

マル「特に動作上の違いはないな」

マル「キーだけ欲しかったり、値だけ欲しかったりすることがあるけど、そういう場合のやり方もあるんだ」

マル
ルビィ
ヨハネ

マル「これはブロックにキーだけが渡される書き方ずら」
ルビィ「each_keyになったんだね。で、渡されるのは配列じゃなくなったんだ」
マル「値だけのパターンもあって」

152
154
156

マル「キーか値か、どっちかだけ必要な場合はちょっと楽になるな」


マル「繰り返し対象が配列やハッシュなら、こうやって簡単に繰り返しが書けるずら。だから逆に、繰り返しを書く前に必要な値を配列に詰めておいたりもするな」
ルビィ「あ、なるほど。扱いやすいようにデータ形式を変えちゃうんだね」
ヨハネ「データ構造とアルゴリズム。インテリジェントなデータ形式は現代的なプログラムの基礎よね」
マル「ヨハネちゃんたまに深いこと言うから油断できないずら・・・」


LINEで送る
Pocket


返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です