在Elisp中将符号转换为字符串

85

如何在Emacs Lisp中将符号类型转换为字符串?

我无法找到symbol-to-string函数或类似的函数。

2个回答

109

52
反过来,(intern "some-string") 的翻译是:(intern "某个字符串") - Ryan C. Thompson

5

通过符号名称(字符串),您可以获取符号的值。使用Trey Jackson的解决方案:

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

如果您只有符号名称,想要获取它们的值,那么这将非常有用。例如,您可以从字符串中读取它们。

需要注意的是: intern 将返回具有给定名称的符号的值。如果不存在具有该名称的符号,则会创建一个新的符号。您可以使用intern-soft来避免在没有给定名称的符号时引入新符号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接