下面的代码片段中的:|temp files|是什么意思?
(defmethod acceptor-remove-session ((acceptor my-site-acceptor) (session t))
(declare (ignore acceptor))
(loop for path in (session-value :|temp files|)
do
(ignore-errors (delete-file path))))发布于 2012-03-01 10:43:41
在Common Lisp中,|...|可以用来引用符号名称中的字符;它可以转义通常不允许的字符,例如空格,它还可以禁用大小写转换。
foo或:foo的symbol-name为"FOO"|temp files|,:|temp files|的symbol-name为"",否则不可能生成(这里的冒号具有关键字符号( KEYWORD包中的符号)的通常含义,并且独立于横线。)
当任务本身适合使用符号,而不是根据Common Lisp约定命名的符号时,|...|很有用。我假设在这种情况下,文本“临时文件”出现在程序输出中的某个位置,或者用作文件名,或者在其他情况下看到TEMP-FILES会很烦人。
发布于 2012-03-02 03:48:09
|是常见Lisp符号中的多重转义字符:
? 'aaBBcc|DDeeFFgg|hhII|jjKK|LL
-> |AABBCCDDeeFFggHHIIjjKKLL|竖线不需要包含整个符号名称。它还可以转义符号的某些部分。
发布于 2012-03-01 11:17:49
Common Lisp允许符号名称包含大范围的字符,比如?和%,这是大多数语言不允许在其标识符中使用的。即使这样,有时程序员也希望符号名称包含超出正常允许范围的内容,例如OP示例中的|temp files|中的单个空格。需要两个竖线(|)字符来分隔此类符号的名称。此外,与未分隔的符号名称不同,这种以竖线分隔的符号名称区分大小写。
https://stackoverflow.com/questions/9509832
复制相似问题