gpt4 book ai didi

lisp - Lisp 代码中长多字符串常量(或变量)的惯用方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:41:43 24 4
gpt4 key购买 nike

在 Common Lisp 代码中插入长多字符串变量或常量的惯用方法是什么?在 unix shell 或其他一些语言中是否有类似 HEREDOC 的东西来消除字符串文字中的缩进空格?

例如:

(defconstant +help-message+ 
"Blah blah blah blah blah
blah blah blah blah blah
some more more text here")
; ^^^^^^^^^^^ this spaces will appear - not good

这样写有点难看:

(defconstant +help-message+ 
"Blah blah blah blah blah
blah blah blah blah blah
some more more text here")

我们应该怎么写。如果有任何办法,当您不需要转义引号时它会更好。

最佳答案

我不知道惯用语,但 format 可以为您做到这一点。 (当然。format 可以做任何事情。)

参见 Hyperspec 第 22.3.9.3 节,波浪符换行符。未修饰,它会删除换行符和后续空格。如果要保留换行符,请使用 @ 修饰符:

(defconstant +help-message+
(format nil "Blah blah blah blah blah~@
blah blah blah blah blah~@
some more more text here"))

CL-USER> +help-message+
"Blah blah blah blah blah
blah blah blah blah blah
some more more text here"

关于lisp - Lisp 代码中长多字符串常量(或变量)的惯用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26277184/

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