以下是一些 format 和 princ 调用的行为:
(format nil "a")
"a"
CL-USER>
(format t "a")
a
NIL
CL-USER>
(princ "a" nil)
a
"a"
CL-USER>
(princ "a" t)
a
"a"
CL-USER>
我原以为该(princ "a" nil)
调用会返回“a”,但不会将“a”打印到标准输出,但它仍会将“a”打印到标准输出。另外我不确定为什么第一个和第二个 princ 调用之间没有区别。
我尝试浏览 hyperspec,但找不到我需要的信息。
我认为我的误解是因为nil
并且t
不是流,但格式将它们转换为返回流(无论是什么)和标准输出。如果是这样的话,我怎样才能得到(format nil ...)
效果(princ ... ?)