Controlla se una mappa contiene una chiave in Go
Le tabelle hash sono implementate in Go
come tipo di dati map
. Go Maps può essere visualizzato come una raccolta di coppie non ordinate di coppie chiave-valore. Le map
sono uno dei tipi di dati più potenti e versatili in Go
grazie alla loro capacità di eseguire ricerche, aggiunte ed eliminazioni rapide. Otteniamo due valori di ritorno quando proviamo a ottenere il valore di chiave
in una map
. Se il secondo valore è vero, allora chiave
è presente sulla map
.
Struttura della map
in Go
Sintassi per map
var map_name map[KeyType]ValueType
Dove, KeyType
è un qualsiasi datatype
paragonabile e ValueType
è anche qualsiasi datatype
, inclusa la stessa map
. Il datatype
per tutte le key
in una map
deve essere lo stesso. Allo stesso modo, anche il datatype
per tutti i value
in una map
deve essere lo stesso. Tuttavia, il datatype
di key
e il datatype
di value
possono essere diversi.
package main
import "fmt"
func main() {
map_1 := map[string]string{
"Jenna": "Sthapit",
}
for k, v := range map_1 {
fmt.Printf("Key:%v\nValue: %s\n", k, v)
}
}
Produzione:
Key:Jenna
Value: Sthapit
Nell’esempio precedente, map_1
ha il tipo di dati string
sia per chiavi
che per valori
. In map_1
, Sthapit
è il valore per la chiave Jenna
.
Controlla la chiave
in Go-map
Sintassi per controllare se una map
contiene una chiave
in Go
first_value, second_value := map_name[key_name]
La dichiarazione di cui sopra restituisce due valori vale a dire. first_value
e second_value
. Il first_value
dà il valore di chiave
. Se map_name
non contiene key_name
, il first_value
sarà il valore zero predefinito. Allo stesso modo, second_value
è un valore booleano che sarà true
se il key_name
è presente nella map
. Possiamo interpretare first_value
e second_value
in modi diversi per verificare se map_name
contiene key_name
.
package main
import "fmt"
func main() {
map_name := map[int]string{
0: "Alok",
1: "Reman",
2: "Riken",
3: "Rudra",
}
_, second_value_1 := map_name[1]
fmt.Printf("second_value for 1: %t\n", second_value_1)
_, second_value_9 := map_name[9]
fmt.Printf("second_value for 9: %t\n", second_value_9)
}
Produzione:
second_value for 1: true
second_value for 9: false
Qui second_value
per 0
è true
poiché la chiave 0
è presente in map_name
. Tuttavia, il second_value
per 9
è false
poiché la chiave 9
non è presente in map_name
.
package main
import "fmt"
func main() {
map_name := map[string]string{
"Giri": "Alok",
"Nembang": "Reman",
"Maharjan": "Riken",
"Jha": "Rudra",
}
if first_value, second_value := map_name["Giri"]; second_value {
fmt.Printf("Giri is present in map. Value is: %s\n", first_value)
} else {
fmt.Printf("Giri is not present in map.\n")
}
if first_value, second_value := map_name["Sthapit"]; second_value {
fmt.Printf("Sthapit is present in map. Value is: %s\n", first_value)
} else {
fmt.Printf("Sthapit is not present in map. \n")
}
}
Produzione:
Giri is present in map. Value is: Alok
Sthapit is not present in map.
In questo esempio, abbiamo usato l’istruzione if
per verificare se esiste una chiave
nella map
. Giri
è una chiave
e Sthapit
non è una chiave
di map_name
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn