Ruby で引数に配列を受け取る際の受け取り方いろいろ
Hash#map
の引数の受け取り方で悩んでたんですが、つまりこういう事か。
# ブロックに配列を渡す def test &block block.call [1, 2, 3] end # 引数がひとつだけの場合はそのまま配列になる test { |a| p a # => [1, 2, 3] } # 配列の要素数よりも引数が少ない場合は、引数の数だけ受け取る test { |a, b| p a, b # => 1 # 2 }
これって要は
data = [1, 2, 3] a, b, c = data
みたいに配列を複数の変数で受け取るのと同じ挙動なのね。
もっと複雑なことをやっているのかと思っていたけど、これですっきりとした。