2011-01-10 27 views

Trả lời

67

Hãy thử sử dụng symbol-name:

(symbol-name 'some-symbol) 
+38

Và ngược lại, '(nội bộ" một số chuỗi ")'. –

0

Cho một tên biểu tượng (một chuỗi), bạn có thể nhận được giá trị của biểu tượng. Sử dụng giải pháp của Trey Jackson:

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

Điều này rất hữu ích nếu bạn muốn nhận được giá trị của biểu tượng mà bạn chỉ có tên. Ví dụ, bạn đọc chúng từ một chuỗi.

Một vài lưu ý: intern trả về giá trị của biểu tượng với tên đã cho. Nếu không có biểu tượng với tên như vậy tồn tại, nó sẽ tạo ra một biểu tượng với tên đó. Bạn có thể sử dụng intern-soft để tránh giới thiệu một biểu tượng mới nếu một với tên đã cho không tồn tại.

Các vấn đề liên quan