如何在Scala中为垂直制表符('\ v',ASCII 11)编写字符文字?
'\v'
不起作用。 (无效的转义字符)
'\11'
应该是它,但是......
scala> '\11'.toInt
res13: Int = 9
但9是普通标签('\ t')的ASCII码。那里发生了什么?
编辑:这有效并产生正确的角色,但我仍然想知道文字的语法。
val c:Char = 11
答案 0 :(得分:11)
您需要使用'\13'
。它是八进制的。
有关详细信息,请参阅Scala Language Specification。
1.3.4字符文字
语法:
characterLiteral :: ='\''printableChar'\''| '\''charEscapeSeq'\''
字符文字是用引号括起来的单个字符。该 character是可打印的unicode字符或由 转义序列(§1.3.6)。
示例1.3.4以下是一些字符 文字:'a''\ u0041''\ n''\ t'注意'\ u000A'不是有效的 字符文字,因为Unicode转换是在文字之前完成的 解析和Unicode字符\ u000A(换行)不是 可打印的字符。可以使用转义序列'\ n'或 八进制转义'\ 12'(§1.3.6)。