Junior — Middle
Kann man die Adresse eines bestimmten Elements, das in einer assoziativen Tabelle (Map) gespeichert ist, erhalten?
sobes.tech KI
Antwort von AI
In Go ist es nicht möglich, die Adresse eines bestimmten Elements, das in einer map gespeichert ist, direkt zu erhalten. Dies liegt daran, dass sich die Elemente der Karte bei Änderungen im Speicher verschieben können, und der Compiler erlaubt es nicht, die Adresse des Werts über die Indexierung zu nehmen, um Fehler zu vermeiden.
Zum Beispiel wird der folgende Code nicht kompiliert:
m := map[string]int{"a": 1}
p := &m["a"] // Kompilierungsfehler: kann die Adresse von m["a"] nicht nehmen
Wenn Sie mit der Adresse des Wertes arbeiten müssen, können Sie Zeiger oder Strukturen im map speichern und deren Adresse nehmen:
m := map[string]*int{"a": new(int)}
*m["a"] = 42
Oder den Wert aus dem map in eine Variable kopieren und die Adresse dieser Variable nehmen.