Menu
Coddy logo textTech

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 1

Go 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.

challenge icon

Sfida

Facile

Scrivi 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

Esercitati da solo: Compilatore Go online