Как я получаю «автономный» символ на API Extension's Extension Ruby
-
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