Sobes.tech
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) არ შეიძლება გამოყენებულ იქნას როგორც გასაღებები, რადგან ისინი არ არის შედარებადები. თუ გჭირდებათ კოლექცია სლაისებზე დაფუძნებული გასაღებებით, უნდა გარდაქმნათ ისინი სტრიქონად ან სხვა შედარებად ტიპად.