Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从hash-ruby c扩展中获取密钥_Ruby_Ruby C Extension - Fatal编程技术网

如何从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)