Ruby 4.0 リファレンスマニュアル

function rb_scan_args_kw

[edit]
int rb_scan_args_kw(int kw_splat, int argc, const VALUE *argv, const char *fmt, ...)

rb_scan_args と同じように、argc と argv の引数を fmt の書式に従って、続く VALUE への参照に格納します。キーワード引数が渡されているかどうかを、Ruby からの呼び出しで決めるのではなく、kw_splat で指定する点が異なります。 fmt の書式は rb_scan_args と同じです。

kw_splat には次のどれかを指定します。

  • RB_SCAN_ARGS_PASS_CALLED_KEYWORDS -- rb_scan_args と同じ動作です。
  • RB_SCAN_ARGS_KEYWORDS -- 最後の引数をキーワード引数のハッシュとして扱います。
  • RB_SCAN_ARGS_LAST_HASH_KEYWORDS -- 最後の引数がハッシュならキーワード引数として扱い、そうでなければ扱いません。
[PARAM] kw_splat:
キーワード引数の扱いです。
[PARAM] argc:
argv の要素数です。
[PARAM] argv:
解析する引数の配列です。
[PARAM] fmt:
引数の形式を表す書式文字列です。
[PARAM] ...:
値を格納する変数への参照です。
[RETURN]
実際に解析した引数の個数です。
[EXCEPTION] fatal:
fmt の形式が不正なとき。
[EXCEPTION] ArgumentError:
引数の個数が合わないとき。