标准ML打印控制字符

时间:2014-04-16 16:06:52

标签: printing casting sml smlnj control-characters

所以我偶然发现了一个似乎是一个奇怪的小问题。我想要打印控制字符,这应该打印出那个奇怪的小盒子,表明我试图打印一个不可打印的字符。

当我尝试:

print "\^C";

它工作正常。但是,当我这样做时:

print (Char.toString(#"\^C"));

它字面上打印" \ ^ C"。这对我没有任何意义,他们不应该打印同样的东西吗? Char.toString不会将字符转换为包含一个字符的字符串,它会将其转换为包含3个字符的字符串,' \',' ^&#39 ;和' C'。

请问有人向我解释这种行为吗?感谢。

1 个答案:

答案 0 :(得分:3)

这是因为Char.toString返回角色的可打印表示。

如果您希望从char直接转换为string,则需要使用str功能。