-3
type student struct {
Name string
Age int
}
func main() {
m := make(map[string]*student)
s := []student{
{Name: "Allen", Age: 24},
{Name: "Tom", Age: 23},
}
for _, stu := range s {
m[stu.Name] = &stu
}
fmt.Println(m)
for key, value := range m {
fmt.Println(key, value)
}
}
Ergebnis erklären:Wie golang Scheibe Palette Phänomen
Karte [Allen: 0xc42006a0c0 Tom: 0xc42006a0c0]
Alle & {Tom 23}
Tom & {Tom 23}
Wie Slice zu erklären Das Phänomen ist meiner Meinung nach, sollte die Adresse eines jeden Mitglied von s sein, aber von den Ergebnissen hat s die gleiche Adresse.
STU ist eine Schleifenvariable und existiert nur einmal: Die Variable (== die Speicheradresse) auf allen Iterationen der Schleife wieder verwendet wird . – Volker