Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Character literal for vertical tab?

Tags:

scala

How can I write a character literal for a vertical tab ('\v', ASCII 11) in Scala?

'\v' doesn't work. (invalid escape character) '\11' should be it, but...

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

But 9 is the ASCII code for a normal tab('\t'). What is going on there?

EDIT: This works and produces the right character, but I'd still like to know the syntax for a literal.

val c:Char = 11
like image 311
Kim Stebel Avatar asked Oct 19 '12 14:10

Kim Stebel


1 Answers

You need to use '\13'. It's in octal.

For more information see Scala Language Specification.

1.3.4 Character Literals

Syntax:

characterLiteral ::= ‘\’’ printableChar ‘\’’ | ‘\’’ charEscapeSeq ‘\’’

A character literal is a single character enclosed in quotes. The character is either a printable unicode character or is described by an escape sequence (§1.3.6).

Example 1.3.4 Here are some character literals: ’a’ ’\u0041’ ’\n’ ’\t’ Note that ‘\u000A’ is not a valid character literal because Unicode conversion is done before literal parsing and the Unicode character \u000A (line feed) is not a printable character. One can use instead the escape sequence ‘\n’ or the octal escape ‘\12’ (§1.3.6).

like image 128
Matthew Farwell Avatar answered Sep 20 '22 02:09

Matthew Farwell