filename=class.c
macro=false
private=false
type=int
name=rb_scan_args
params=(int argc, const VALUE *argv, const char *fmt, ...)


長さ argc の配列 argv を fmt に従って
解析し、第四引数以降で渡されたアドレスに書き込みます。

fmt のフォーマットは以下の通りです。

  * 必須引数の数 (省略可能な引数があるなら省略不可)
  * 省略可能な引数の数 (ゼロ個ならば省略可)
  * 残りの引数を Ruby の配列として受け取ることを示す '*' (省略可)
  * 最後の引数をオプションハッシュとして受け取る事を示す ':' (省略可)
  * ブロックを Proc オブジェクト化して受け取ることを示す '&' (省略可)

これらの指定文字はそれぞれ省略可能ですが、
必ずこの順番で現れなければいけません。

使用例

      VALUE a, b, optv;
      rb_scan_args(argc, argv, "21", &a, &b, &optv);

対応する Ruby プログラムでの宣言

      def some_method(a, b, opt = nil)

使用例 (2)

      VALUE a, rest, block;
      rb_scan_args(argc, argv, "1*&", &a, &rest, &block);

対応する Ruby プログラムでの宣言

      def some_method(a, *rest, &block)

@see [[url:http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/README.EXT.ja?view=markup]]

