如何将列表转换为字符串,以便可以调用insert或message使用它?我需要显示c-offsets-alist,但我得到Wrong type argument: char-or-string-p了插入或Wrong type argument: stringp消息。
			
			17888 次
		
5 回答
            55        
        
		
我不确定您要实现什么,但format将“东西”转换为字符串。例如:
(format "%s" your-list)
将返回您的列表的表示。  message在内部使用格式,所以
(message "%s" your-list)
将打印它
于 2013-09-24T10:45:20.887   回答
    
    
            31        
        
		
(format)将在字符串中嵌入括号,例如:
ELISP> (format "%s" '("foo" "bar"))
"(foo bar)"
因此,如果您需要类似于 Ruby/JavaScript 的类似物join(),则有(mapconcat):
ELISP> (mapconcat 'identity '("foo" "bar") " ")
"foo bar"
    于 2015-09-15T07:42:08.537   回答
    
    
            10        
        
		
或者
(prin1-to-string your-string)
终于有一些特别的了
(princ your-string)
    于 2013-09-24T11:17:18.840   回答
    
    
            1        
        
		
M-x pp-eval-expression RET c-offsets-alist RET
    于 2013-09-24T20:12:01.113   回答
    
    
            0        
        
		
如果您需要将列表转换((a b c d e))为字符串"a b c d e",那么此函数可能会有所帮助:
(defun convert-list-to-string (list)
  "Convert LIST to string."
  (let* ((string-with-parenthesis (format "%S" list))
     (end (- (length string-with-parenthesis) 2)))
    (substring string-with-parenthesis 2 end)))
    于 2021-05-02T14:58:11.317   回答