Junior — Middle
Használhatók-e tömbök kulcsként a Map gyűjteményben?
sobes.tech MI
Válasz az MI-től
Go-ban a map gyűjtemény kulcsai csak olyan típusok lehetnek, amelyek támogatják az == összehasonlító műveletet. A Go-ban a tömbök elemenként összehasonlíthatók, ezért a fix hosszúságú tömbök kulcsként használhatók.
Példa:
package main
import "fmt"
func main() {
m := make(map[[3]int]string)
key := [3]int{1, 2, 3}
m[key] = "példa"
fmt.Println(m[key]) // Kiírja: példa
}
Azonban a szeletek ([]int) nem használhatók kulcsként, mivel nem összehasonlíthatók. Ha olyan gyűjteményre van szükség, amely szeleteken alapuló kulcsokat tartalmaz, akkor azokat stringgé vagy más összehasonlítható típusra kell konvertálni.