IT-словарь › Программирование › Размеченное объединение

Размеченное объединение

Программирование Svenska → Обновлено: 2026-10-18

Union с явным полем-«меткой», указывающим, какой вариант сейчас хранится.

Union в C/C++ неразмечен: это просто общая память, и ошибки вылезают в рантайме. У размеченного есть информация о типе, которую компилятор может проверить. В TypeScript это discriminated union: type Result = { kind: 'ok'; value: number } | { kind: 'err'; error: string }, а компилятор сужает тип по switch на kind.

Rust-овский enum формально и есть размеченное объединение с неявным дискриминантом; в C++ его роль играют std::variant и std::visit. Типичное применение: типы ответов API, конечные автоматы, узлы AST. Современные системы типов делают такие объединения безопасными, а голый C-union опасен — можно прочитать не то поле и получить неопределённое поведение.

← Назад к словарю