Character literals
Table of contents
Overview
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';
Details
A character literal consists of a sequence of characters enclosed in single quotes (').
- The contents must represent precisely one Unicode code point.
- Hex escape sequences (
\xHH) are supported but limited to values up to0x7F(where the UTF-8 code unit and Unicode code point values are identical). Values0x80and above are disallowed in character literals to avoid ambiguity between arbitrary byte values and Unicode code points. - Grapheme clusters (sequences of multiple code points representing a single visual character) are not supported in character literals.
Escape Sequences
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 HH16(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).
References
- Proposal #1964: Character Literals
- Proposal #6710:
charredesign