clojure - 组合字符串和变量时避免额外的空格
clojure - avoid extra whitespace when combining string and variable
我正在编写一个程序,该程序使用 printl-str 来执行汇编语言的 return 命令。我需要在我的代码中使用变量,我遇到了这个问题,函数将 return 我不想要的额外空白:
(defn pushConstant [constant]
(println-str "@" constant "\r\nD=A\r\n@SP\r\nA=M\r\nM=D\r\n@SP\r\nM=M+1"))
Where 而不是 having,假设常量 = 17
@17
D=A
@SP
A=M
M=D
@SP
M=M+1
我有:
@ 17
D=A
@SP
A=M
M=D
@SP
M=M+1
我的汇编代码有问题。在很多这样的情况下,我都有这个问题。我很高兴听到有关如何避免字符串和变量之间出现额外空格的建议。
坦率地说,我会将其实现为看起来更像以下内容:
(defn pushConstant [constant]
(->> [(str "@" constant)
"D=A"
"@SP"
"A=M"
"M=D"
"@SP"
"M=M+1"]
(interpose "\r\n")
(apply str)))
这样一来,您就没有一个又大又难看的格式字符串,而是将您的操作分解成小的、可读的部分。
也就是说,这里对您有所帮助的部分是 (str "@" constant)
,将您的 @
与不添加空格的参数相结合。
使用仅连接(println 交错空格)的 str
创建字符串:
(defn pushConstant [constant]
(println-str (str "@" constant "\r\nD=A\r\n@SP\r\nA=M\r\nM=D\r\n@SP\r\nM=M+1")))
我正在编写一个程序,该程序使用 printl-str 来执行汇编语言的 return 命令。我需要在我的代码中使用变量,我遇到了这个问题,函数将 return 我不想要的额外空白:
(defn pushConstant [constant]
(println-str "@" constant "\r\nD=A\r\n@SP\r\nA=M\r\nM=D\r\n@SP\r\nM=M+1"))
Where 而不是 having,假设常量 = 17
@17
D=A
@SP
A=M
M=D
@SP
M=M+1
我有:
@ 17
D=A
@SP
A=M
M=D
@SP
M=M+1
我的汇编代码有问题。在很多这样的情况下,我都有这个问题。我很高兴听到有关如何避免字符串和变量之间出现额外空格的建议。
坦率地说,我会将其实现为看起来更像以下内容:
(defn pushConstant [constant]
(->> [(str "@" constant)
"D=A"
"@SP"
"A=M"
"M=D"
"@SP"
"M=M+1"]
(interpose "\r\n")
(apply str)))
这样一来,您就没有一个又大又难看的格式字符串,而是将您的操作分解成小的、可读的部分。
也就是说,这里对您有所帮助的部分是 (str "@" constant)
,将您的 @
与不添加空格的参数相结合。
使用仅连接(println 交错空格)的 str
创建字符串:
(defn pushConstant [constant]
(println-str (str "@" constant "\r\nD=A\r\n@SP\r\nA=M\r\nM=D\r\n@SP\r\nM=M+1")))