Strukturen als Schlüssel in Go Maps

Ich habe mir überlegt, Strukturen als Schlüssel in Golang-Karten zu verwenden. Ein Feld in dieser Struktur soll auch eine Karte sein, und dies scheint gegen die bereitgestellte Dokumentation zu verstoßenHier was besagt, dass nur Strukturen, die Felder haben, mit denen verglichen werden kann== und!= kann sich in den Feldern von Strukturen befinden, die als Schlüssel in Maps verwendet werden. Ich habe jedoch Folgendes versucht:

package main

import "fmt"
import "strings"

func main() {
    fmt.Println("Hello, 世界")
    fmt.Println(strings.Join([]string{"obi", "$", "56"}, ""))
    z := make(map[string]float64)

    z["obi"] = 0.003

    x := &test{
        name:"testing",
        code:z,
    }

    a := &test{
        name:"testing2",
        code:z,
    }

    y := make(map[*test] string)

    y[x] = "go home"
    y[a] = "come home"

    for key, val := range y{
        fmt.Println(key.name, key.code, val)
    }

}

type test struct{
    name string
    code map[string]float64
}

Die Ausgabe war:

Hello, 世界
obi$56
testing map[obi:0.003] go home
testing2 map[obi:0.003] come home

Dies scheint der Dokumentation zu widersprechen, da ein Feld in der Struktur, die als Schlüssel verwendet wird, eine Karte ist. Was scheine ich falsch zu verstehen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage