Middle
Ի՞նչ տվյալների տեսակներ կարելի է օգտագործել որպես բանալի։
sobes.tech AI
Պատասխան AI-ից
Go-ում քարտեզի բանալիները կարող են լինել միայն այն տիպերի, որոնք աջակցում են համեմատության գործողությանը (==): Դա կապված է այն բանի հետ, որ հեշ-թերթում բանալին գտնելու համար անհրաժեշտ է համեմատել բանալիները հավասարության համար:
Կան տիպեր, որոնք կարող են օգտագործվել որպես բանալիներ՝
- Պրիմիտիվ տիպեր՝
int,float64,string,boolև այլն - Ցանցեր
- Կառուցվածքներ, եթե բոլոր նրանց դաշտերը համեմատելի են
- Աղյուսակներ, եթե տարրերը համեմատելի են
Տիպեր, որոնք չեն կարող օգտագործվել որպես բանալիներ՝
- Սլայսեր (
slice) - Քարտեզներ (
map) - Ֆունկցիաներ
Սա կապված է այն բանի հետ, որ այս տիպերը չեն աջակցում ==-ով համեմատությանը:
Օրինակ՝
m := make(map[string]int)
m["key"] = 42
// Կառուցվածք, որի դաշտերը համեմատելի են
type Point struct {
X, Y int
}
m2 := make(map[Point]string)
m2[Point{1, 2}] = "Մի կետ"
Եթե փորձեք օգտագործել սլայս կամ քարտեզ որպես բանալին, կոմպիլյատորը կհայտարարի սխալ։