Làm cách nào để chuyển đổi loại ký hiệu thành chuỗi trong Emacs lisp?Chuyển đổi ký hiệu thành chuỗi trong Elisp
Tôi không thể tìm thấy chức năng symbol-to-string
hoặc bất kỳ điều gì tương tự.
Làm cách nào để chuyển đổi loại ký hiệu thành chuỗi trong Emacs lisp?Chuyển đổi ký hiệu thành chuỗi trong Elisp
Tôi không thể tìm thấy chức năng symbol-to-string
hoặc bất kỳ điều gì tương tự.
Hãy thử sử dụng symbol-name
:
(symbol-name 'some-symbol)
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.
Và ngược lại, '(nội bộ" một số chuỗi ")'. –