9

Scalaで垂直タブ('\ v'、ASCII 11)の文字リテラルを作成するにはどうすればよいですか?

'\v'動作しません。(無効なエスケープ文字) '\11'それであるはずですが...

scala> '\11'.toInt
res13: Int = 9

ただし、9は通常のタブ('\ t')のASCIIコードです。そこで何が起こっているのですか?

編集:これは機能し、正しい文字を生成しますが、それでもリテラルの構文を知りたいです。

val c:Char = 11
4

1 に答える 1

11

を使用する必要があります'\13'。8進数です。

詳細については、Scala 言語仕様を参照してください。

1.3.4 文字リテラル

構文:

characterLiteral ::= '\'' printableChar '\'' | '\'' charEscapeSeq '\''</p>

文字リテラルは、引用符で囲まれた単一の文字です。文字は、印刷可能な Unicode 文字であるか、エスケープ シーケンス (§1.3.6) によって記述されます。

例 1.3.4 ここにいくつかの文字リテラルがあります: 'a' '\u0041' '\n' '\t' '\u000A' は有効な文字リテラルではないことに注意してください。 u000A (改行) は印刷可能な文字ではありません。代わりに、エスケープ シーケンス '\n' または 8 進エスケープ '\12' (§1.3.6) を使用できます。

于 2012-10-19T14:41:23.213 に答える