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 pentruuint8) - Rune (
rune- alias pentruint32, reprezintă un caracter Unicode)
- Numere întregi (
- Ș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.