如何在Racket中的字符串中附加数字?

boo*_*ife 5 python string-concatenation racket

Python:xx = "p" + "y" + str(3)=> xx == "py3"
如何使用Racket获得相同的结果?

(string-append "racket" (number->string 5) " ")  
Run Code Online (Sandbox Code Playgroud)

在Racket中是否有另一种方法,类似于上面的Python示例,将数字附加到字符串?

Dan*_*ton 8

Python会自动将数字强制转换为字符串,而Racket 则不会这样做.Racket和Python都不会将数字强制转换为字符串.这就是你必须number->string在Racket str()Python("p" + str(3))中明确使用的原因.你可能还会发现Racket的format函数与Python %运算符的某些用法类似:

# Python
"py %d %f" % (3, 2.2)

;; Racket
(format "rkt ~a ~a" 3 2.2)
Run Code Online (Sandbox Code Playgroud)

但是没有Racket 和Python等同于"foo" + 3我所知道的.

[根据我的错误编辑答案.我把Python行为与JavaScript混淆,被OP误导了]


ali*_*oar 7

$ racket
Welcome to Racket v5.3.5.
-> (~a "abc" "def")
"abcdef"
-> (~a "abc" 'xyz 7 )
"abcxyz7"
-> 
Run Code Online (Sandbox Code Playgroud)