Sobes.tech
Junior — Middle

Map tuzilmasi uchun kalit sifatida qaysi ma'lumotlar turlari ruxsat etilgan?

sobes.tech AI

AIdan javob

Go'da, xarita uchun kalitlar faqat taqqoslash operatsiyasini (solishtirish mumkin) qo'llab-quvvatlaydigan ma'lumot turlariga ega bo'lishi mumkin. Bu shuni anglatadiki, kalitlar quyidagilar bo'lishi mumkin:

  • Boolean qiymatlar (bool)
  • Raqamlar (int, float, complex va boshqalar)
  • Qatorlar (string)
  • Ko'rsatkichlar
  • Interfeyslar, agar dinamik tur taqqoslashni qo'llab-quvvatlasa
  • Tuzilmalar, agar ularning barcha maydonlari solishtiriladigan bo'lsa

Slicinglar, xaritalar, funksiyalar va boshqa solishtirilmaydigan turlarni kalit sifatida ishlatish mumkin emas, chunki ular == operatorini qo'llab-quvvatlamaydi.

Misol:

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

// Solishtiriladigan maydonlarga ega tuzilma
type Point struct {
    X, Y int
}

m2 := make(map[Point]string)
m2[Point{1,2}] = "Bir nuqta"