Golang Controlla se la chiave in mappa

Golang Controlla se la chiave in mappa
Una mappa si riferisce a una raccolta non ordinata di coppie di valore chiave. In altri linguaggi di programmazione, le mappe sono citate con nomi diversi come hash, dizionari, array associativo o una mappa non ordinata.

Qualunque sia il nome, le mappe sono incredibilmente versatili e forniscono un modo semplice e veloce per recuperare, aggiornare o eliminare i dati utilizzando i tasti.

In questo tutorial amichevole, imparerai come verificare se esiste una chiave in una mappa usando il linguaggio di programmazione Go.

Le basi

Prima di verificare se una mappa è in una chiave, iniziamo con come creare una mappa in GO.

Per creare una mappa in GO, utilizzare la sintassi di esempio mostrata di seguito:

mappa [key_data_type] valori_data_type // crea una mappa vuota
mappa [key_data_type] value_data_type key_1: value_1,…, key_n: value_n // mappa con dati

L'esempio seguente crea una mappa di stringhe:

my_map: = map [int] string
1: "Ubuntu",
2: "Debian"
3: "Fedora"
4: "OpenSuse"
5: "Manjaro",

Recupera i valori nella mappa

Dovremo recuperare un valore associato a una chiave specifica in una mappa nella maggior parte dei casi. Go ci fornisce un metodo molto semplice per realizzare questo compito.

La sintassi è come mostrata:

map_name [tasto]

Possiamo accedere a un valore memorizzato in una chiave specifica chiamando il nome della mappa e passando il tasto target all'interno di una coppia di parentesi quadrate.

Un esempio è come mostrato:

fmt.Println (my_map [4])

Quanto sopra dovrebbe recuperare il valore nel numero della chiave 4. L'output risultante è come mostrato:

$ go run Check_if_key_exists.andare
Opensuse

Sebbene questa sia una tecnica semplice per recuperare un valore basato su una chiave, a volte può confondere se una chiave non è in una mappa.

Cosa succede quando si tenta di recuperare un valore per una chiave inesistente?

fmt.Println (my_map [0])
...> 0

Il codice sopra ritorna 0 poiché non esiste una chiave "0" qui.

Ma cosa succede se avessi una chiave con il valore effettivo "0"? Come si dice se la chiave non è lì o il valore è 0?

Controlla se la chiave esiste nella mappa

Pertanto, è prudente avere un modo per dire se c'è una chiave o il valore è solo 0. Possiamo usare la sintassi come mostrato:

_, trovato: = map_name [chiave]

Il parametro trovato contiene un valore booleano. Se la chiave è nella mappa, il parametro trovato è vero e falso.

Hmm, cool!

Possiamo utilizzare questa funzionalità per implementare un'istruzione condizionale in base al valore della variabile trovata.

Un esempio è come mostrato:

func check_if_exists ()
stati: = map [string] string
"CO": "Colorado",
"De": "Delaware",
"LA": ​​"Louisiana",
"MA": "Massachusetts",
"VT": "Vermont",

se _, trovato: = afferma ["Ma"]; trovato
fmt.Printf ("trovato")
altro
fmt.Println ("non trovato")

Nell'esempio sopra, utilizziamo un'istruzione if per verificare se una chiave è nella mappa utilizzando il parametro trovato.

Il codice risultante è come mostrato:

$ go run Check_if_key_exists.andare
Non trovato

Questo metodo funzionerà in modo efficiente anche se il valore della chiave specificata è uguale a 0 o true/false.

Conclusione

In questo articolo, hai imparato come accedere ai valori in una mappa utilizzando la chiave associata e verificare se una chiave si trova in una mappa.

Grazie per la lettura e la modalità di codice felice!