op ..
..
Приоритет: 5 Ассоциативность: нет
Определяется в
- 5.2 Приоритет и ассоциативность — Приоритет и ассоциативность
- 5.3 Перегрузка и пользовательские операторы — Перегрузка встроенных операторов — объявления op в impl
- 1.6 Операторы и разделители — + - * / % ** +% -% % +| -| | & | ^ ~ << >> && || !
- 3.6 Псевдонимы, новые и уточнённые типы — distinct T создаёт новый номинальный тип с представлением T.
- 5.5 Сопоставление с образцом — match ДОЛЖЕН быть исчерпывающим.
- 4.3 Конструирование и конструкторы — Литерал. T{ f1: e1, f2, ..base }
Примеры
type Bytes2 = [u8; 2] // псевдоним, тот же тип
type UserId = distinct u64 // новый тип, без неявных приведений
type Port = u16 where 1..=65535 // уточнённый тип
type Name = str where len(1..=64)
type Email = str where matches(re".+@.+\..+")— 3.6 Псевдонимы, новые и уточнённые типы
Связанные диагностики
chained-comparison, not-callable, not-overloadable, operator-decl, range-not-iterable, invalid-char, refinement-violated, non-exhaustive, pattern-bindings, unreachable-arm, bad-init, missing-field, must-close, positional-literal