Sprawdzanie, czy klucz istnieje
Lekcja 20 z 21 w kursie Slice’y i mapy w Go w Coddy.
Do tej pory nauczyliśmy się dodawać i usuwać wartości z map. W tej lekcji dowiemy się, jak sprawdzić, czy mapa zawiera określony klucz. Możemy to zrobić za pomocą warunku if, jak pokazano w poniższym przykładzie:
var books = map[string]int{
"Golang": 1,
"Python": 2,
"Rust": 3,
}
if v, k := books["Python"]; k{
fmt.Println(v)
}W tym przykładzie mamy mapę o nazwie books. Za pomocą if sprawdzamy, czy mapa zawiera klucz "Python". Jeśli tak, wypisujemy przypisaną do niego wartość. W naszym przykładzie wynikiem będzie 2.
k w <strong>books["Python"]; k{</strong> przechowuje wartość logiczną: true lub false. Jeśli klucz istnieje, zwróci true. Możemy to sprawdzić, wypisując tę wartość na ekranie:
if v, k := books["Python"]; k{
fmt.Println(k,v)
}Wynik będzie następujący:
true 1Go ma uproszczoną wersję, której można użyć w następujący sposób:
v, k := books ["a"]
fmt.Println(v, k)Zwróci ona wartość v oraz k — wartość logiczną true (jeśli klucz istnieje) lub false (jeśli klucz nie istnieje):
0 false
W naszym przypadku a nie znajduje się w mapie, więc zwracane są wartości 0 i false.
Wyzwanie
ŁatwyNapisz program, który pobiera od użytkownika klucz i sprawdza, czy ten klucz istnieje w podanej mapie:
- Jeśli istnieje, wyświetl komunikat
<strong>"{key} exists with a value of {value}"</strong>.
{key} to klucz wprowadzony przez użytkownika, a {value} to odpowiadająca mu wartość w mapie. - Jeśli nie istnieje, wyświetl komunikat
<strong>"{key} does not exist in the map"</strong>.
Spróbuj swoich sił
package main
import "fmt"
func main() {
// Pobierz dane wejściowe od użytkownika jako klucz. Nie zmieniaj tego!
var key string
fmt.Scanln(&key)
// Mapa książek. Nie zmieniaj tego!
books := map[string]int{
"Golang": 1,
"Python": 2,
"Rust": 3,
"Lua": 4,
"Java": 5,
}
// Sprawdź, czy klucz istnieje w mapie
}Wszystkie lekcje w sekcji Slice’y i mapy w Go
1Wprowadzenie
Wprowadzenie4Mapy
MapyKopiowanie mapyDodawanie i usuwanie elementówSprawdzanie, czy klucz istniejeWyzwanie podsumowujące nr 1Poćwicz samodzielnie: Kompilator Go online