Junior
Quali sono le principali strutture dati in Go?
sobes.tech AI
Risposta dell'AI
In Go, esistono le seguenti strutture di dati principali (primitive) e composte (composite):
Primitive:
- Booleani (
bool) - Tipi numerici:
- Numeri interi (
int,int8,int16,int32,int64,uint,uint8,uint16,uint32,uint64,uintptr) - Numeri a virgola mobile (
float32,float64) - Numeri complessi (
complex64,complex128) - Byte (
byte- alias diuint8) - Rune (
rune- alias diint32, rappresenta un carattere Unicode)
- Numeri interi (
- Stringhe (
string)
Composti:
- Array (
array)- Dimensione fissa.
var arr [5]int // array di 5 interi - Slice (
slice)- Dimensione dinamica, basata su array.
var s []int // slice non inizializzato s = make([]int, 5, 10) // slice di lunghezza 5 e capacità 10 - Mappe (
map)- Collezione non ordinata di coppie chiave-valore.
m := make(map[string]int) // mappa con chiavi stringa e valori int - Struct (
struct)- Collezione tipizzata di campi.
type Person struct { Name string Age int } - Puntatori (
pointer)- Contengono l'indirizzo di una cella di memoria.
var x int = 10 var p *int = &x // p punta a x - Funzioni (
func)- In Go, le funzioni sono tipi di prima classe.
type MyFunc func(int) string // tipo funzione - Canali (
channel)- Usati per sincronizzazione e scambio di dati tra goroutine.
ch := make(chan int) // canale senza buffer per int - Interfacce (
interface)- Rappresentano un insieme di metodi che un tipo deve implementare.
type Reader interface { Read(p []byte) (n int, err error) }
È anche importante menzionare altri tipi compositi importanti, come:
- Slice di byte (
[]byte) - Slice di rune (
[]rune)
Queste strutture dati forniscono flessibilità e prestazioni per un'ampia gamma di compiti in Go.