Middle
Kalit sifatida qanday ma'lumot turlari ishlatilishi mumkin?
sobes.tech AI
AIdan javob
Go tilida, xarita kalitlari faqat taqqoslash operatsiyasini (==) qoʻllab-quvvatlaydigan tiplarga ega boʻlishi mumkin. Bu, hash jadvalida kalitni qidirishda kalitlarni tenglik boʻyicha taqqoslash zarurligi bilan bogʻliq.
Kalit sifatida ishlatilishi mumkin boʻlgan turlar:
- Asosiy turlar:
int,float64,string,boolva boshqalar - Koʻrsatkichlar
- Agar ularning barcha maydonlari taqqoslanadigan boʻlsa, tuzilmalar
- Elementlari taqqoslanadigan massivlar
Kalit sifatida ishlatilishi mumkin boʻlmagan turlar:
- Slicing (
slice) - Xaritalar (
map) - Funktsiyalar
Bu, bu turlar == yordamida taqqoslashni qoʻllab-quvvatlamasligi bilan bogʻliq.
Misol:
m := make(map[string]int)
m["key"] = 42
// Taqqoslanadigan maydonlarga ega struktur
type Point struct {
X, Y int
}
m2 := make(map[Point]string)
m2[Point{1, 2}] = "Bir nuqta"
Agar siz slicing yoki mapni kalit sifatida ishlatishga harakat qilsangiz, kompilyator xato beradi.