docs/design/lexical_conventions/character_literals.md
A character literal represents a single Unicode code point at compile time.
Character literals are delimited by single quotes ('), for example 'a'.
var a: char = 'a';
var newline: char = '\n';
A character literal consists of a sequence of characters enclosed in single
quotes (').
\xHH) are supported but limited to values up to
0x7F (where the UTF-8 code unit and Unicode code point values are
identical). Values 0x80 and above are disallowed in character literals to
avoid ambiguity between arbitrary byte values and Unicode code points.Character literals support the same escape sequences as string literals:
| Escape | Meaning |
|---|---|
\t | U+0009 CHARACTER TABULATION |
\n | U+000A LINE FEED |
\r | U+000D CARRIAGE RETURN |
\" | U+0022 QUOTATION MARK (") |
\' | U+0027 APOSTROPHE (') |
\\ | U+005C REVERSE SOLIDUS (\) |
\0 | Code unit with value 0 |
\xHH | Code unit with hexadecimal value HH<sub>16</sub>(limited to ≤ 7F) |
\u{HHHH...} | Unicode code point U+HHHH... |
Hexadecimal digits (H) in \x or \u escape sequences must use uppercase
letters (for example, \x0A, not \x0a).
char redesign