Sobes.tech
Junior

Care sunt principalele structuri de date în Go?

sobes.tech AI

Răspuns de la AI

În Go, există următoarele structuri de date principale (primitive) și compuse (composite):

Primitive:

  • Valori boolean (bool)
  • Tipuri numerice:
    • Numere întregi (int, int8, int16, int32, int64, uint, uint8, uint16, uint32, uint64, uintptr)
    • Numere în virgulă flotantă (float32, float64)
    • Numere complexe (complex64, complex128)
    • Byte (byte - alias pentru uint8)
    • Rune (rune - alias pentru int32, reprezintă un caracter Unicode)
  • Șiruri (string)

Compuse:

  • Array-uri (array)
    • Dimensiune fixă.
    var arr [5]int // array de 5 întregi
    
  • Slicere (slice)
    • Dimensiune dinamică, bazată pe array-uri.
    var s []int // slicer neinițializat
    s = make([]int, 5, 10) // slicer cu lungimea 5 și capacitatea 10
    
  • Hărți (map)
    • Colecție nesortată de perechi cheie-valoare.
    m := make(map[string]int) // hartă cu chei string și valori int
    
  • Structuri (struct)
    • Colecție tipizată de câmpuri.
    type Person struct {
        Name string
        Age  int
    }
    
  • Poinți (pointer)
    • Stochează adresa unei celule de memorie.
    var x int = 10
    var p *int = &x // p indică spre x
    
  • Funcții (func)
    • În Go, funcțiile sunt tipuri de primă clasă.
    type MyFunc func(int) string // tip de funcție
    
  • Canale (channel)
    • Folosite pentru sincronizare și schimb de date între goroutines.
    ch := make(chan int) // canal fără buffer pentru int
    
  • Interfețe (interface)
    • Reprezintă un set de metode pe care un tip trebuie să le implementeze.
    type Reader interface {
        Read(p []byte) (n int, err error)
    }
    

De asemenea, merită menționat și alte tipuri compuse importante, precum:

  • Slicere de bytes ([]byte)
  • Slicere de rune ([]rune)

Aceste structuri de date oferă flexibilitate și performanță pentru o gamă largă de sarcini în Go.