如何从hash-ruby c扩展中获取密钥
我正在寻找一个函数,它可以让我从散列中得到所有的键,或者我可以循环通过散列一次检索单个键 目前我正在硬编码的关键如何从hash-ruby c扩展中获取密钥,ruby,ruby-c-extension,Ruby,Ruby C Extension,我正在寻找一个函数,它可以让我从散列中得到所有的键,或者我可以循环通过散列一次检索单个键 目前我正在硬编码的关键 VALUE option = rb_hash_aref(options, rb_str_new2("some_key")); 可以使用()使用回调函数迭代键/值对: 有一个,但它似乎不在任何头文件中,因此使用它可能有风险。您可以随时调用Ruby方法本身: VALUE keys = rb_funcall(hash, rb_intern("keys"), 0) 是的rb\u hash
VALUE option = rb_hash_aref(options, rb_str_new2("some_key"));
可以使用()使用回调函数迭代键/值对:
有一个,但它似乎不在任何头文件中,因此使用它可能有风险。您可以随时调用Ruby方法本身:
VALUE keys = rb_funcall(hash, rb_intern("keys"), 0)
是的
rb\u hash\u key
投诉使用未声明的标识符“rb\u hash\u key”
您有任何工作示例吗?我发现这个错误候选函数不可行:对于第二个参数void rb_hash_foreach(VALUE,int(*)(ANYARGS),VALUE,没有从'int(VALUE,VALUE,VALUE)到'int(*)(…)'的已知转换
MRI源在rb_hash_key
中有一个示例:错误:使用未声明的标识符“rb_hash_key”;什么ruby版本?编译程序?编译器标志?你是怎么建造的?使用这些名称的空函数可以很好地编译。
VALUE keys = rb_funcall(hash, rb_intern("keys"), 0)