End*_*Wan 3 format common-lisp
我想要这样的东西在共同的 lisp 中。
(format t "~{-~}" repeat-times)
Run Code Online (Sandbox Code Playgroud)
如果重复次数为 5 将打印 -----
如果重复次数为 10 将打印 ----------
格式是否存在这样做的方法?
是的。 ~{只要还有要处理的参数,通常就会重复,但添加前缀参数将限制迭代次数。制作前缀参数v将从参数列表中获取它。添加@将使迭代使用其余的参数作为输入。
由于大括号之间的部分从不使用任何参数,因此前缀将决定迭代次数。但是,必须至少有一个参数(我随意选择nil),否则迭代将立即终止。
(format t "~v@{-~}" repeat-times nil)
Run Code Online (Sandbox Code Playgroud)