parameters(lambda: nil) -> [object]
[permalink][rdoc][edit]-
Proc オブジェクトの引数の情報を返します。
Proc オブジェクトが引数を取らなければ空の配列を返します。引数を取る場合は、配列の配列を返し、各配列の要素は引数の種類に対応した以下のような Symbol と、引数名を表す Symbol の 2 要素です。
- :req
-
必須の引数
- :opt
-
デフォルト値が指定されたオプショナルな引数
- :rest
-
* で指定された残りすべての引数
- :keyreq
-
必須のキーワード引数
- :key
-
デフォルト値が指定されたオプショナルなキーワード引数
- :keyrest
-
** で指定された残りのキーワード引数
- :block
-
& で指定されたブロック引数
- [PARAM] lambda:
- true なら lambda として扱ったとき、false なら lambda ではない Proc として扱ったときの引数の情報を返します。
prc = lambda{|x, y=42, *other, k_x:, k_y: 42, **k_other, &b|} prc.parameters #=> [[:req, :x], [:opt, :y], [:rest, :other], [:keyreq, :k_x], [:key, :k_y], [:keyrest, :k_other], [:block, :b]]
prc = proc{|x, y=42, *other|} p prc.parameters # => [[:opt, :x], [:opt, :y], [:rest, :other]] prc = lambda{|x, y=42, *other|} p prc.parameters # => [[:req, :x], [:opt, :y], [:rest, :other]] prc = proc{|x, y=42, *other|} p prc.parameters(lambda: true) # => [[:req, :x], [:opt, :y], [:rest, :other]] prc = lambda{|x, y=42, *other|} p prc.parameters(lambda: false) # => [[:opt, :x], [:opt, :y], [:rest, :other]]
[SEE_ALSO] Method#parameters, UnboundMethod#parameters