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

みたいに配列を複数の変数で受け取るのと同じ挙動なのね。
もっと複雑なことをやっているのかと思っていたけど、これですっきりとした。