В інформатиці об'єднання () є значенням або структурою даних, яке може мати кілька різних подань.
У сильно типізованих мовах тип об'єднання відповідає поняттю з теорії типів тип-сума, тобто вимагає використовувати різні конструктори для значень різних типів.
У слабко типізованих мовах, як-от C і C++, тип об'єднання реалізує каламбур типізації, тобто забезпечує інтерпретування одного й того ж значення відповідно до різних типів.
Залежно від конкретної мови та типу, значення об'єднання може використовуватися в таких операціях як присвоєння чи порівняння у відриві від інформації про конкретний тип або з вимогою її наявності.
Приклад на C union Some { int i; double a; };Це об'єднання зберігає або ціле число (змінна i), або число з рухомою комою (змінна a). У C та C++ об'єднання реалізовано як різновид структури, до нього звертаються так само, як і до структури: через символ «->» за використання вказівника, чи «.» за використання звичайної змінної.
Можна ускладнити приклад, зробивши об'єднання частиною структури і тоді звертатися треба буде вже через структуру, тобто:struct STRX { int i; Some v, *w; } a, *b;Розглянемо способи звернення до об'єднання, задані через вказівники, змінні та в змішаний спосіб:a.v.i = 123; b->v.i = 123; a.w->i = 123; b->w->i = 123;Є можливість зробити об'єднання безіменним:struct STRX { int j; union { int i; double a;
} a;При цьому звернення спрощується:a.i = 123; a.a = 4.5;
Див. також Тип-сума Каламбур типізації