Sobes.tech
Junior — Middle

Poate fi utilizate structurile ca chei într-un array asociativ sau mapă?

sobes.tech AI

Răspuns de la AI

În Go, cheile dintr-un map pot fi doar de tipuri care suportă operația de comparație (operatorul ==). Structurile pot fi folosite ca chei dacă toate câmpurile lor sunt comparabile. De exemplu, dacă o structură conține doar tipuri de bază (int, string etc.), poate fi folosită ca cheie. Dacă însă structura conține slices, hărți sau funcții, nu poate fi folosită ca cheie.

Exemplu:

package main

import "fmt"

type Point struct {
    X, Y int
}

func main() {
    m := make(map[Point]string)
    p := Point{X: 1, Y: 2}
    m[p] = "punct"
    fmt.Println(m[p]) // ieșire: punct
}

Dacă structura conține câmpuri necomparabile, compilatorul va genera o eroare.