Scalaで垂直タブ('\ v'、ASCII 11)の文字リテラルを作成するにはどうすればよいですか?
'\v'
動作しません。(無効なエスケープ文字)
'\11'
それであるはずですが...
scala> '\11'.toInt
res13: Int = 9
ただし、9は通常のタブ('\ t')のASCIIコードです。そこで何が起こっているのですか?
編集:これは機能し、正しい文字を生成しますが、それでもリテラルの構文を知りたいです。
val c:Char = 11
Scalaで垂直タブ('\ v'、ASCII 11)の文字リテラルを作成するにはどうすればよいですか?
'\v'
動作しません。(無効なエスケープ文字)
'\11'
それであるはずですが...
scala> '\11'.toInt
res13: Int = 9
ただし、9は通常のタブ('\ t')のASCIIコードです。そこで何が起こっているのですか?
編集:これは機能し、正しい文字を生成しますが、それでもリテラルの構文を知りたいです。
val c:Char = 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) を使用できます。