Sobes.tech
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.