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