如何在球拍中添加一个数字到字符串?
Python:xx = "p" + "y" + str(3)
=>xx == "py3"
如何使用球拍获得相同的结果?如何在球拍中添加一个数字到字符串?
(string-append "racket" (number->string 5) " ")
是否有球拍另一种方式,类似于Python的例子以上,多项附加到一个字符串?
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误导]
Python不会自动将数字强制转换为字符串。该OP是不正确的。 –
@MarkTolonen:* facepalm *正确的你。 –
$ racket
Welcome to Racket v5.3.5.
-> (~a "abc" "def")
"abcdef"
-> (~a "abc" 'xyz 7)
"abcxyz7"
->
你试过你的Python例子吗? –
我尝试:TypeError:不能连接'str'和'int'对象。在这个问题之前,python auto将数字强制转换为我心中的字符串 –