Sobes.tech
Middle

რა ტიპის მონაცემებს შეიძლება გამოიყენოს გასაღებად?

sobes.tech AI

პასუხი AI-სგან

Go-da, kartadagi açarlar yalnızca müqayisə əməliyyatını (==) dəstəkləyən tiplər ola bilər. Bu, hash cədvəlində açarı tapmaq üçün açarların bərabərliyini müqayisə etmək lazım olduğu üçün baş verir.

Açar kimi istifadə oluna bilən tiplər:

  • Əsas tiplər: int, float64, string, bool və s.
  • Göstəricilər
  • Əgər bütün sahələri müqayisə oluna bilən strukturlar
  • Elementləri müqayisə oluna bilən massivlər

Açar kimi istifadə oluna bilməyən tiplər:

  • Dilimlər (slice)
  • Xəritələr (map)
  • Funktsiyalar

Bu, bu tiplərin == ilə müqayisəni dəstəkləməməsi ilə əlaqədardır.

Nümunə:

m := make(map[string]int)
m["key"] = 42

// Müqayisə oluna bilən sahələrə malik struktur
 type Point struct {
     X, Y int
 }

m2 := make(map[Point]string)
m2[Point{1, 2}] = "Bir nöqtə"

Əgər dilim və ya xəritəni açar kimi istifadə etməyə çalışsanız, tərtibçi xəta verəcək.