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 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.
  • 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