Sobes.tech
Junior — Middle

Puoi spiegare il principio di funzionamento dell'hash nella realizzazione di una mappa (Map)?

sobes.tech AI

Risposta dell'AI

In Go, una mappa (map) è implementata come una tabella hash, dove le chiavi vengono trasformate in valori hash tramite una funzione hash. Il principio di funzionamento dell'hash nella mappa è il seguente:

  1. Per una chiave data, viene calcolato un codice hash — un valore numerico che dipende dal contenuto della chiave.
  2. Il codice hash viene usato per determinare l'indice nell'array di bucket (cestini), dove viene memorizzato il valore.
  3. Se ci sono più elementi in un bucket (collisione), si effettua una ricerca tramite una catena o un altro meccanismo di risoluzione delle collisioni.

Questo permette di trovare, aggiungere e rimuovere elementi rapidamente per chiave con una complessità ammortizzata di circa O(1).

Esempio di utilizzo di una mappa in Go:

m := make(map[string]int)
m["apple"] = 5
value := m["apple"] // value == 5

In questo esempio, la stringa "apple" viene hashata e il valore 5 viene salvato nel bucket corrispondente.