Назад к вопросам
Junior
109
questionbank

Какие основные структуры данных существуют в Go?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

В Go существуют следующие основные встроенные (primitive) и составные (composite) структуры данных:

Встроенные:

  • Булевы (bool)
  • Числовые типы:
    • Целочисленные (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr)
    • Числа с плавающей точкой (float32, float64)
    • Комплексные числа (complex64, complex128)
    • Байт (byte - псевдоним uint8)
    • Руна (rune - псевдоним int32, представляет символ Unicode)
  • Строки (string)

Составные:

  • Массивы (array)
    • Фиксированный размер.
    var arr [5]int // массив из 5 целых чисел
    
  • Срезы (slice)
    • Динамический размер, основаны на массивах.
    var s []int // неинициализированный срез
    s = make([]int, 5, 10) // срез длиной 5 с вместимостью 10
    
  • Карты (map)
    • Неупорядоченная коллекция пар ключ-значение.
    m := make(map[string]int) // карта с ключами string и значениями int
    
  • Структуры (struct)
    • Типизированная коллекция полей.
    type Person struct {
        Name string
        Age  int
    }
    
  • Указатели (pointer)
    • Хранят адрес ячейки памяти.
    var x int = 10
    var p *int = &x // p указывает на x
    
  • Функции (func)
    • В Golang функции являются типами первого класса.
    type MyFunc func(int) string // тип функции
    
  • Каналы (channel)
    • Используются для синхронизации и обмена данными между горутинами.
    ch := make(chan int) // небуферизованный канал для int
    
  • Интерфейсы (interface)
    • Представляют набор методов, которые тип должен реализовать.
    type Reader interface {
        Read(p []byte) (n int, err error)
    }
    

Также стоит упомянуть о наличии других важных составных типов, таких как:

  • Срезы байт ([]byte)
  • Срезы рун ([]rune)

Эти структуры данных обеспечивают гибкость и производительность для широкого спектра задач в Go.