RubyのC拡張APIで「スタンドアロン」記号を取得する方法
-
13-10-2019 - |
質問
C関数からいくつかの値を返したいと思っていますが、Imho、ハッシュは良い選択肢です。最初に使用しました rb_intern('A_KEY')
キーを作成するには、拡張機能がクラッシュしました。今、私は使用しています rb_str_new2
, 、しかし、私はシンボルが好きです。
新しいシンボルを作成し、クラスやメソッドを参照せずに使用するにはどうすればよいですか?
解決
使用する必要があります ID2SYM
マクロから得られる識別子を変換します rb_intern
ルビーシンボルに。変更してみてください
rb_intern('A_KEY')
に
ID2SYM(rb_intern('A_KEY'))
所属していません StackOverflow