ブロック引き数で多重代入
会社でこう書けないかなと思っていたら、実は書けるということを家帰って気づいたというお話。
ちょっとしたスクリプトを書く時に、Rangeクラス使って配列作って、zipでゴニョゴニョやるというのをよくやるんですけど、今まで
((1..10).to_a.zip( (1..10).to_a )).each{ |a| puts a[0] * a[1] }
とかやっていて、indexで書くのださいなぁというか、括弧うつのだりぃとか思って、そこでパターンマッチみたくかけないかなぁと思ったら、多重代入(になるのかなぁ?)になって、やりたいことが実はできてしまうんですね。
((1..10).to_a.zip( (1..10).to_a )).each{ |a,b| puts a * b }
しらなんだなぁ。