所有
我想将元素更改为格式化字符串,然后我使用格式化函数.(我使用的语言是方案)
正如http://www.gnu.org/software/mit-scheme/documentation/mit-scheme-ref/Format.html中的文档所述,如果我想在右边插入空格,我可以使用~mincolA.
所以我用
(format "~4A " x)
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误:
format: ill-formed pattern string
explanation: tag `~4' not allowed
pattern string: "~4A "
Run Code Online (Sandbox Code Playgroud)
我想得到如下结果:
如果x为0,则结果为空间空间0;
如果x是12,则结果是空间12.
我知道我可以使用
(string-append (make-string (- 4 (string-length x)) #\ ) x)
Run Code Online (Sandbox Code Playgroud)
得到我想要的结果,但我真的想要使用"格式"功能.
谢谢.
请注意,参考文档是针对 MIT/GNU Scheme 的,该format功能在 Racket 中的工作方式不同。开箱即用,您可以使用该~a功能实现相同的效果:
(~a x #:min-width 4 #:align 'right #:left-pad-string " ") ; x can be a number or a string
Run Code Online (Sandbox Code Playgroud)
例如:
(~a 0 #:min-width 4 #:align 'right #:left-pad-string " ")
=> " 0"
(~a "12" #:min-width 4 #:align 'right #:left-pad-string " ")
=> " 12"
Run Code Online (Sandbox Code Playgroud)
如果您不介意导入额外的外部库,@uselpa 的答案是准确的。