Verificare la presenza di una chiave
Lezione 20 di 21 del corso Slice e mappe in GoLang di Coddy.
Finora abbiamo imparato ad aggiungere ed eliminare valori dalle mappe. In questa lezione impareremo a verificare se una mappa contiene una chiave specifica. Possiamo farlo usando la condizione if, come mostrato nel seguente esempio:
var books = map[string]int{
"Golang": 1,
"Python": 2,
"Rust": 3,
}
if v, k := books["Python"]; k{
fmt.Println(v)
}In questo esempio abbiamo una mappa chiamata books. Usando if, verifichiamo se la mappa contiene la chiave "Python". In caso affermativo, stampiamo il valore associato. Nel nostro esempio, il risultato sarà 2.
La k in <strong>books["Python"]; k{</strong> contiene un valore booleano, true oppure false. Se la chiave esiste, restituirà true e possiamo verificarlo stampandolo sullo schermo:
if v, k := books["Python"]; k{
fmt.Println(k,v)
}L'output sarà:
true 1Go dispone di una versione semplificata, che si può usare così:
v, k := books ["a"]
fmt.Println(v, k)Questo restituirà il valore v e k un valore booleano true (se la chiave esiste) oppure false (se la chiave non esiste):
0 false
Nel nostro caso, a non è nella mappa, quindi restituisce 0 e false.
Sfida
FacileScrivi un programma che acquisisca un input dall’utente come chiave e verifichi se questa chiave esiste nella mappa fornita:
- Se esiste, stampa il messaggio
<strong>"{key} exists with a value of {value}"</strong>.
{key} è la chiave inserita dall’utente, e {value} è il valore corrispondente nella mappa. - Se non esiste, stampa
<strong>"{key} does not exist in the map"</strong>.
Provalo tu
package main
import "fmt"
func main() {
// Acquisisci l'input dell'utente come chiave. Non modificarlo!
var key string
fmt.Scanln(&key)
// Mappa dei libri. Non modificarla!
books := map[string]int{
"Golang": 1,
"Python": 2,
"Rust": 3,
"Lua": 4,
"Java": 5,
}
// Verifica se la chiave esiste nella mappa
}Tutte le lezioni di Slice e mappe in GoLang
1Introduzione
Introduzione4Mappe
MappeCopiare una mappaAggiungere ed eliminare elementiVerificare la presenza di una chiaveSfida di ripasso #1Esercitati da solo: Compilatore Go online