2011-01-10 20 views

回答

67

嘗試使用symbol-name

(symbol-name 'some-symbol) 
+38

而相反,`(intern「some-string」)`。 – 2011-01-11 01:17:33

0

給定一個符號名(字符串),就可以得到符號的值。使用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來避免引入新的符號。