Junior — Middle
Map konteynerida kalit sifatida qanday ma'lumot turlari ishlatilishi mumkin?
sobes.tech AI
AIdan javob
Go'da, xarita kaliti faqat solishtiriladigan (solishtiriladigan) ma'lumot turlaridan bo'lishi mumkin. Bu shuni anglatadiki, kalit uchun == operatori belgilangan bo'lishi kerak.
Mos keladigan kalit turlari:
- Boolean qiymatlar (
bool) - Raqamlar (
int,float64,uint8va boshqalar) - Satrlar (
string) - Ko'rsatkichlar
- Kanallar
- Interfeyslar, agar dinamik tur solishtiriladigan bo'lsa
- Tuzilmalar, agar ularning barcha maydonlari solishtiriladigan bo'lsa
Kalit sifatida ishlatib bo'lmaydiganlar:
- Slicing (
slice) - Xaritalar (
map) - Funktsiyalar
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"
Agar solishtirilmaydigan turni kalit sifatida ishlatishga harakat qilsangiz, kompilyator xato beradi.