Char.toString没有特殊处理“和\

问题描述 投票:2回答:1

我试图将字符转换为字符串,如下所示:

Char.toString(#"x")

对于大多数角色来说这是有效的,但是对于"\,在它之前添加了额外的\

- Char.toString(#"\"");
val it = "\\\"" : string

这对我来说是不受欢迎的行为。我希望上面的代码片段返回val it = "\"" : string。 SML中是否有可以执行此操作的内置函数?

escaping sml smlnj
1个回答
4
投票

来自the documentation of Char.toString

如果需要,使用SML转义序列返回字符的可打印字符串表示形式。除#“\”和#“\”之外的可打印字符保持不变。反斜杠#“\”变为“\\”;双引号#“\”“变为”\\“”。[...]

要将字符转换为包含该字符的长度为一的字符串,请使用函数String.str

并从String.str的文档:

str c是包含字符c的大小为1的字符串。

所以str #"\""将完全按照你的意愿行事。

© www.soinside.com 2019 - 2024. All rights reserved.