如何在球拍中添加一个数字到字符串?

问题描述:

Python:xx = "p" + "y" + str(3) =>xx == "py3"
如何使用球拍获得相同的结果?如何在球拍中添加一个数字到字符串?

(string-append "racket" (number->string 5) " ") 

是否有球拍另一种方式,类似于Python的例子以上,多项附加到一个字符串?

+3

你试过你的Python例子吗? –

+0

我尝试:TypeError:不能连接'str'和'int'对象。在这个问题之前,python auto将数字强制转换为我心中的字符串 –

Python自动将数字强制转换为一个字符串,而Racket将不是这样做。球拍和Python都不会将数字强制转换为字符串。这就是为什么你必须在球拍中明确使用number->string,在Python("p" + str(3))中必须使用str()。您也可以找到球拍的format功能类似的行为Python的%运营商的一些用法:

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

;; Racket 
(format "rkt ~a ~a" 3 2.2) 

但没有球拍相当于"foo" + 3,我知道也不是Python的

[编辑按我的错误回答。我将Python的行为与JavaScript混淆,被OP误导]

+0

Python不会自动将数字强制转换为字符串。该OP是不正确的。 –

+0

@MarkTolonen:* facepalm *正确的你。 –

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