有时我喜欢用(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"))
Run Code Online (Sandbox Code Playgroud)
在 Common Lisp 中是否有更惯用的和编译时的方式来做同样的事情?
这是一个等效的格式字符串,它使用Tilde 换行符格式指令,它忽略后面的换行符和空格(直到下一个可见字符)。为了像您一样缩进空格,我在空格~%之前写了强制换行符:
(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"))
Run Code Online (Sandbox Code Playgroud)
(注意。这是一个单独的字符串,因此在编译时不需要进行连接。)
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |