Конвертировать символ в строку в Elisp - PullRequest
65 голосов
/ 10 января 2011

Как мне преобразовать тип символа в строку в Emacs lisp?

Мне не удалось найти функцию symbol-to-string или что-либо подобное.

Ответы [ 2 ]

86 голосов
/ 10 января 2011

Попробуйте использовать symbol-name:

(symbol-name 'some-symbol)
2 голосов
/ 12 июня 2017

Учитывая имя символа (строку), вы можете получить значение символа.Используя решение Трея Джексона:

(setq ASymbol 10)  => 10
(intern "ASymbol")  => 'ASymbol (e.g. the unevaluated symbol with name "ASymbol")
(symbol-value (intern "ASymbol")) => 10

Это полезно, если вы хотите получить значения символов, для которых у вас есть только имена.Например, вы читаете их из строки.

Несколько замечаний: intern возвращает значение символа с заданным именем.Если символа с таким именем не существует, он создает символ с таким именем.Вы можете использовать intern-soft, чтобы не вводить новый символ, если его с таким именем не существует.

...