OxL Справочник OxL
РусскийEnglish

1.5 Литералы

ВидСинтаксисТип по умолчанию
Целое42, 1_000, 0xFF, 0o17, 0b1010, суффикс 42u8выводится; иначе i64
Вещественное3.14, 1e-9, 2.5f32выводится; иначе f64
Логическоеtrue, falsebool
Символ'a', '\n', '\u{1F600}'char
Строка"text {expr}"str
Сырая строкаr"C:\path", r#"..."#str
Многострочная"""…""" (общий отступ удаляется)str
Байтыb"\x00abc"bytes
Длительность250ms, 1h30m, 2d, 1.5sDuration
Размер512B, 4KiB, 16MiB, 1GBu64 (байты)
Дата2026-11-03Date
Дата-время2026-11-03T18:00, 2026-11-03T18:00:05.250LocalDateTime
Момент UTC2026-11-03T15:00ZTime
Префиксныйre"\d+", tz"Europe/Moscow", cron"0 9 * * MON-FRI", sha256"ab12…", ip"10.0.0.1"тип обработчика
Отсутствиеnonenone
Unit()()

Правила:

  • Интерполяция {expr} в строке вычисляет expr и вызывает Show.show. Литеральная фигурная скобка — {{ и }}. Формат: {x:.2}, {x:08x}, {t:dd.MM.yyyy} (§17.5). Спецификатор {выражение:спец}: спец = [[заполнитель]выравнивание][знак][#][0][ширина][.точность][тип]; выравнивание <, ^, > (числа — >, текст — <); знак + или -; # — префикс системы счисления (0x, 0o, 0b); 0 — дополнение нулями (только числа); .N — число знаков дроби у вещественных и длина (в символах) у текста. Тип: целые — x X o b; вещественные — e E; str, char — ? (в кавычках с экранированием); Duration — единица ns us ms s m h d: значение в этих единицах с суффиксом ({d:ms} → 1500ms, {d:.2s} → 1.50s); Time, LocalDateTime, Date — шаблон (§17.5); тип с методом fmt(спец: str) -> str — собственный формат. Спецификатор, не подходящий типу значения, — ошибка компиляции bad-format-spec; для типов, неизвестных при проверке (параметр обобщения), проверяется только синтаксис (D-8064; D-7810).
  • Escape-последовательности: \n \r \t \\ \" \' \0 \xHH \u{H…}.
  • Единицы длительности: ns us ms s m h d. Составная длительность — единицы строго по убыванию, без пробелов (1h30m15s). Календарные интервалы (месяцы, годы) — не литералы, а Period (§17.2).
  • Дата и дата-время распознаются лексером жадно по шаблону DDDD-DD-DD[TDD:DD[:DD[.D+]]][Z]. Вычитание чисел записывается с пробелами: 2026 - 11.
  • Префиксный литерал p"…" вызывает comptime-функцию literal fn p(s: str) -> T из области видимости (§15.3). Ошибка в обработчике — ошибка компиляции. Встроенные префиксы: r b re tz cron sha256 ip url html.
  • Целочисленный литерал, не помещающийся в выведенный тип, — ошибка компиляции.

bad-format-spec, invalid-char-literal, invalid-date, invalid-duration, invalid-escape, invalid-number, literal-overflow, unterminated-string

См. также

Исходник: docs/spec/oxl-standard.md