如何检查VALUE是否是Ruby C扩展中的Proc?

时间:2015-12-04 21:10:45

标签: c ruby

我在Ruby C扩展中有一个方法,它以Proc作为参数,我想验证参数是否是正确的类型,即我想做相当于{{1但是在C代码中。我找到了arg.is_a?(Proc)宏,但看起来CheckType不是可以检查的内置类型列表。那么,我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

这些宏对应不同类型的RVALUE。要检查任意类,请使用rb_obj_is_kind_of,它是位于is_a?后面的C函数:

rb_obj_is_kind_of(some_obj, rb_cProc);

请注意,这会返回QTrue / QFalse。您还应该能够使用rb_obj_is_proc