Zjištění, jestli mapa obsahuje klíč

Publikováno 10-20-2016 08:05:29

Každý potřebujeme čas od času zjistit, jestli je v mapě položka pod daným klíčem. V Go se to dělá velmi jednoduše.

	mapa := map[string]string{
		"položka1": "hodnota1",
	}
	if hodnota1, ok := mapa["položka1"]; ok {
		fmt.Printf("Hurá, mapa má klíč 'položka1': [%s]\n", hodnota1)
	}
	if hodnota2, ok := mapa["položka2"]; !ok {
		fmt.Printf("Bohužel, klíč 'položka2' není v mapě. Posuďte sami: [%#v], [%s]", mapa, hodnota2)
	}

Mimochodem, podobný postup se používá i v situaci, kdy si chcete ověřit typ proměnné.

	cokoliv := interface{}(1)
	if _, ok := cokoliv.(int); ok {
		fmt.Println("Sláva, cokoliv je int!")
	}
	if _, ok := cokoliv.(string); ok {
		fmt.Println("Sláva, cokoliv je string!")
	} else {
		fmt.Println("Bohužel cokoliv není string")
	}
comments powered by Disqus