Python:xx = "p" + "y" + str(3)
=> xx == "py3"
如何使用Racket获得相同的结果?
(string-append "racket" (number->string 5) " ")
在Racket中是否有另一种方法,类似于上面的Python示例,将数字附加到字符串中?
答案 0 :(得分:8)
Python自动将数字强制转换为字符串,而Racket将不这样做。 Racket和Python都不会将数字强制转换为字符串。这就是为什么你必须在Racket中明确使用number->string
,在Python (str()
)中使用和"p" + str(3)
。您还可以找到Racket的format
函数,其行为类似于Python的%
运算符的某些用法:
# Python
"py %d %f" % (3, 2.2)
;; Racket
(format "rkt ~a ~a" 3 2.2)
但是我知道没有与"foo" + 3
相当的Racket 和Python 。
[根据我的错误编辑了答案。我把Python行为与JavaScript混淆,被OP误导了
答案 1 :(得分:7)
$ racket
Welcome to Racket v5.3.5.
-> (~a "abc" "def")
"abcdef"
-> (~a "abc" 'xyz 7 )
"abcxyz7"
->