Sobes.tech
Junior — Middle

Jakie typy kluczy są dozwolone do użycia w strukturze danych Map?

sobes.tech AI

Odpowiedź od AI

W Go klucze dla struktury danych map muszą być porównywalnymi (comparable) typami, czyli takimi, które można używać w operacjach porównania == i !=.

Dozwolone typy kluczy obejmują:

  • Typy podstawowe: int, float64, string, bool itp.
  • Wskaźniki
  • Struktury, jeśli wszystkie ich pola są porównywalne
  • Tablice, jeśli elementy tablicy są porównywalne

Nie dozwolone typy kluczy:

  • Slicing (slice)
  • Mapy (map)
  • Funkcje

Przykład użycia mapy z kluczem typu string:

m := make(map[string]int)
m["apple"] = 5
fmt.Println(m["apple"]) // 5

Jeśli spróbujesz użyć slice jako klucza, kompilator zgłosi błąd.