るりまサーチ

最速Rubyリファレンスマニュアル検索!
11件ヒット [1-11件を表示] (0.074秒)
トップページ > クエリ:l[x] > クエリ:Cat[x] > クエリ:rb_catch[x]

別のキーワード

  1. shell cat
  2. cat each
  3. filter cat
  4. cat new
  5. shell/filter cat

検索結果

VALUE rb_catch(const char *tag, VALUE (*proc)(), VALUE data) (44512.0)

catch と同等の動作を実行します。

...
cat
ch と同等の動作を実行します。

まず proc に、yield された値と data を渡して実行します。
その途中で tag が throw されたら rb_catch 全体を終了します。

throw が発生した場合はその値を返します。
throw が発生しなかったとき...
...VALUE
foo_yield(VALUE a, VALUE b)
{
return rb_yield(b);
}

static VALUE
foo_catch(VALUE obj)
{
return rb_catch("footag", foo_yield, INT2FIX(2));
}

static VALUE
foo_abort(VALUE obj)
{
return rb_throw("footag", Qnil);
}

void
Init_foo(void)
{
VALUE...
...Foo = rb_define_class("Foo", rb_cObject);
rb_define_method(Foo, "catch", foo_catch, 0);
rb_define_method(Foo, "abort", foo_abort, 0);
}...