我如何在Ruby的C扩展API上检索"独立"符号

clb*_*tos 6 c ruby symbols ruby-c-extension

我想从C函数返回几个值,而恕我直言,哈希是一个不错的选择.我首先用来rb_intern('A_KEY')创建密钥,但扩展程序崩溃了.现在,我正在使用rb_str_new2,但我更喜欢符号.

如何创建新符号,并在不引用类或方法的情况下使用它?

mat*_*att 8

您需要使用ID2SYM宏将您获得的标识符rb_intern转换为ruby符号.尝试改变

rb_intern('A_KEY')
Run Code Online (Sandbox Code Playgroud)

ID2SYM(rb_intern('A_KEY'))
Run Code Online (Sandbox Code Playgroud)