Junior — Middle
შესაძლებელია თუ არა მასივების გამოყენება Map კოლექციაში გასაღებად?
sobes.tech AI
პასუხი AI-სგან
Go-ში, map კოლექციაში გასაღებები შეიძლება იყოს მხოლოდ ტიპები, რომლებიც მხარს უჭერენ შედარების ოპერაციას ==. Go-ში მასივები შედარებადია ელემენტზე ელემენტზე, ამიტომ განსაზღვრული სიგრძის მასივები შეიძლება გამოყენებულ იქნას როგორც გასაღებები.
მაგალითი:
package main
import "fmt"
func main() {
m := make(map[[3]int]string)
key := [3]int{1, 2, 3}
m[key] = "მაგალითი"
fmt.Println(m[key]) // გამოიტანს: მაგალითი
}
თუმცა, სლაისები ([]int) არ შეიძლება გამოყენებულ იქნას როგორც გასაღებები, რადგან ისინი არ არის შედარებადები. თუ გჭირდებათ კოლექცია სლაისებზე დაფუძნებული გასაღებებით, უნდა გარდაქმნათ ისინი სტრიქონად ან სხვა შედარებად ტიპად.