Преобразование символа в строку в Elisp



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



Я не смог найти или что-нибудь подобное.

520   2  

2 ответов:

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

(symbol-name 'some-symbol)

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

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

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

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

Comments

    Ничего не найдено.