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