我正在寻找一个可以从哈希获取所有密钥的函数,或者我可以循环遍历哈希以一次检索单个密钥。
目前我正在使用硬编码密钥
VALUE option = rb_hash_aref(options, rb_str_new2("some_key"));
答案 0 :(得分:2)
您可以使用rb_hash_foreach
(blog post w/an example)使用回调函数迭代键/值对:
void rb_hash_foreach(VALUE, int (*)(ANYARGS), VALUE);
有一个rb_hash_keys
in MRI,但它似乎不在任何头文件中,因此使用它可能会有风险。
答案 1 :(得分:1)
你总是可以调用Ruby方法本身:
VALUE keys = rb_funcall(hash, rb_intern("keys"), 0)