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"