Skip to content

Композитные типы, составные типы (Composite types)

Из главы ты узнаешь:

  • что такое пользовательские типы и какими они бывают;

  • как объявлять алиасные типы;

  • что такое структура, композиция, а также как структура встраивается.

Композитные или составные типы — это такие типы, как массив, срез, карты и структуры. Эти типы скрывают в себе внутренний базовый тип, на котором они основаны. Эти типы также называют контейнерными типами.

Go поддерживает следующие составные типы:

  • Типы указателей — указатели похожи на smart pointers C++.

  • Типы структур — похожи на структуры C/C++.

  • Типы функций — функции являются первоклассными типами в Go.

  • Типы контейнеров:

    • Типы массивов — типы контейнеров фиксированной длины.

    • Тип слайса — типы контейнеров с динамической длиной и динамической емкостью.

    • Типы карт — карты представляют собой ассоциативные массивы или словари. Стандартный компилятор Go реализует карты в виде хеш-таблиц.

    • Типы каналов — каналы используются для синхронизации данных между горутинами (зеленые потоки в Go).

    • Типы интерфейсов — интерфейсы играют ключевую роль в отражении и полиморфизме.

Безымянные составные типы могут быть обозначены соответствующими литералами типов. Ниже приведены некоторые примеры буквального представления всех видов безымянных составных типов.

Сравнимые и несравнимые типы мы рассмотрим далее.

Подробнее о композитных и составных типах ты можешь узнать по ссылке.