Как я получаю «автономный» символ на API Extension's Extension Ruby

StackOverflow https://stackoverflow.com/questions/4527076

Вопрос

Я хочу вернуть несколько значений из функции C, и IMHO, хэш - хороший вариант. Я впервые использовал rb_intern('A_KEY') Чтобы создать ключи, но расширение разбилось. Теперь я использую rb_str_new2, но я предпочитаю символы.

Как создать новый символ и использовать его, не имея в виду класс или метод?

Это было полезно?

Решение

Вам нужно использовать ID2SYM макрос для преобразования идентификатора, от которого вы получаете rb_intern в рубиновый символ. Попробуйте измениться

rb_intern('A_KEY')

к

ID2SYM(rb_intern('A_KEY'))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top