垂直制表符的字符文字?

Kim*_*bel 9 scala

如何在Scala中为垂直制表符('\ v',ASCII 11)编写字符文字?

'\v'不起作用.(无效的转义字符) '\11'应该是它,但是......

scala> '\11'.toInt
res13: Int = 9
Run Code Online (Sandbox Code Playgroud)

但9是普通标签('\ t')的ASCII码.那里发生了什么?

编辑:这工作并产生正确的字符,但我仍然想知道文字的语法.

val c:Char = 11
Run Code Online (Sandbox Code Playgroud)

Mat*_*ell 11

你需要使用'\13'.它是八进制的.

有关更多信息,请参阅Scala语言规范.

1.3.4字符文字

句法:

characterLiteral :: ='\''printableChar'\''| '\''charEscapeSeq'\''

字符文字是用引号括起来的单个字符.该字符是可打印的unicode字符或由转义序列(§1.3.6)描述.

例1.3.4下面是一些字符文字:'a''\ u0041''\n''\ t'注意'\ u000A'不是有效的字符文字,因为Unicode转换是在文字解析和Unicode字符之前完成的u000A(换行符)不是可打印字符.可以使用转义序列'\n'或八进制转义'\ 12'(§1.3.6).