Sobes.tech
Junior

Кои са основните структури от данни в Go?

sobes.tech AI

Отговор от AI

В Go съществуват следните основни (примитивни) и съставни (композитни) структури от данни:

Примитивни:

  • Булеви (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)
    • В Go функциите са първокласни типове.
    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.