Menu
Coddy logo textTech

L'idioma degli insiemi in Go

Fa parte della sezione Logica e flusso del percorso GO di Coddy. Lezione 31 di 68.

Go non dispone di una struttura dati set integrata come molti altri linguaggi di programmazione. Tuttavia, gli sviluppatori Go hanno creato una soluzione elegante usando le mappe per simulare i set, e questo schema è diventato così comune da essere considerato idiomatico in Go.

L'idioma dei set in Go usa una mappa in cui ti interessano solo le chiavi, non i valori. Poiché devi memorizzare qualcosa come valore, i programmatori Go usano una struct vuota struct{}. Ecco lo schema di base:

var mySet map[string]struct{}

La struct vuota struct{} è speciale perché occupa zero byte di memoria. Questo la rende perfetta per gli insiemi in cui devi solo tenere traccia del fatto che qualcosa esista o meno, senza sprecare memoria per valori privi di significato.

Questo approccio sfrutta la proprietà fondamentale delle chiavi di una mappa: devono essere univoche. Quando aggiungi un elemento al tuo insieme, in realtà stai aggiungendo una chiave alla mappa. L’univocità è garantita automaticamente dal comportamento della mappa, offrendoti le vere caratteristiche di un insieme.

Nelle prossime lezioni imparerai a creare, manipolare e utilizzare gli insiemi con questo idiomatico schema Go. Questa tecnica è ampiamente utilizzata nei codebase Go per tenere traccia degli elementi univoci, implementare algoritmi e risolvere problemi in cui è necessario verificare rapidamente l'appartenenza.

Provalo tu

Questa lezione non include una sfida di codice.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Go online