Rubyのメソッドの引数あれこれメモ

配列引数

複数の引数を1つの配列として扱うにはアスタリスクをつける

def my_mthod(*args)
  args
end

my_method(1, 'hoge', 'three')
#=> [1, 'hoge', 'three']

キーワード引数

Ruby 2.0からの機能(同じことは1.9系とかでもできるがハッシュを展開しないとダメ)

def my_method(name: 'test user')
  name
end

my_method(name: "test new user")
#=> "test new user"

メソッド定義の際の引数にdef my_method(:name => 'test user')って書き方はできないみたい。 ただ、メソッドを呼び出す際の引数に上記は可能。つまりmy_method(:name => 'test new user')はOK

Rubyist Magazine - Ruby 2.0.0 のキーワード引数

 


ブロック引数、Procの引数に関しては下記のQiitaの記事が非常にわかりやすかったのでぜひご一読下さい。

[Ruby基礎] ブロックとProcをちゃんと理解する - Qiita [キータ]