sách gpt4 ai đã đi

c - 如何将用 C 编写的 block 传递给 Ruby 的 rb_mod_refine?

In lại 作者:太空宇宙 更新时间:2023-11-04 03:11:53 26 4
mua khóa gpt4 Nike

也许更一般地说,如何将用 C 编写的 block 传递给另一个接受 block 的 C 函数?我知道我可以做这样的事情:

VALUE refine_foobar(VALUE block_arg, VALUE data, int argc, VALUE* argv) {
// block code here
return Qnil;
}

void Init_mything() {
VALUE mod = rb_define_module("Foobar");
rb_block_call(mod, rb_intern("refine"), 0, NULL, refine_foobar, Qnil);
}

但我觉得必须有一种方法可以直接调用 rb_mod_refine,而不是通过 rb_block_call.

有什么想法吗?谢谢!

1 Câu trả lời

在当前的使用中,改进应用于模块。它就在方法的名称中。

据我所知,它不能直接与 block 一起使用。

我能看到这个工作的唯一方法是在模块中创建一个“C”方法,然后使用 ruby 代码以常规方式将该模块作为改进应用。

关于c - 如何将用 C 编写的 block 传递给 Ruby 的 rb_mod_refine?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55539185/

26 4 0
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com