gpt4 book ai didi

common-lisp - 拆分格式字符串(格式 t ...)

转载 作者:行者123 更新时间:2023-12-05 08:48:11 27 4
gpt4 key购买 nike

有时我喜欢用(format t ..)输出一些文本。
为了防止源代码中出现不可读的长格式字符串,并使输出易于对齐,我使用 (format t (concatenate 'string ....)

例子:

(format t (concatenate 'string 
"some output~%"
" error-msg: ~a~%"
" uiop-cwd: ~a~%"
" uiop-file-exists: ~a~%")
"error foo"
(uiop:getcwd)
(uiop:file-exists-p "hello_world.bmp"))

在 Common Lisp 中是否有更惯用的编译时方法来做同样的事情?

最佳答案

这是一个使用 Tilde newline 的等效格式字符串format 指令,忽略后面的换行符和空格(直到下一个可见字符)。为了像您一样缩进空格,我在空格前写了强制换行符 ~%:

(format t 
"some output~
~% error-msg: ~a~
~% uiop-cwd: ~a~
~% uiop-file-exists: ~a~%"
"error foo"
(uiop:getcwd)
(uiop:file-exists-p "hello_world.bmp"))

(注意。这是单个字符串,因此在编译时无需进行连接。)

关于common-lisp - 拆分格式字符串(格式 t ...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66319479/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com