Menu
Coddy logo textTech

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 1

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

challenge icon

Wyzwanie

Łatwy

Napisz 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

Poćwicz samodzielnie: Kompilator Go online