Rubyのsplat引数、splat展開
配列の場合
*Arrayのように書くことで、引数を配列として受け取ったり、配列の値を展開して渡したりできる
メソッド呼び出し(super・ブロック付き・yield)
引数の直前に * がついている場合、その引数の値が展開されて渡されます。展開はメソッド to_a を経由して行なわれます。
多重代入
左辺の最後の式の直前に * がついていると、対応する左辺のない余った要素が配列として代入されます。余った要素が無い時には空の配列が代入されます。
ハッシュの場合
**Hashのように書くことで、ハッシュリテラル内でハッシュのキーと値を展開できる
キーワード引数として定義されていない任意のキーワードを、ハッシュとして受け取ることができる
メソッド定義における引数の種類とその順番
code:sample.rb
def buy_burger(menu, drink: true, potato: true, **others)
puts others
# 省略
end
buy_burger('fish', drink: true, potato: false, salad: true, chicken: false)
# => {:salad=>true, :chicken=>false}
#プロを目指す人のためのRuby入門
#Rubyを学ぶ