Junior — Middle
Meg lehet szerezni egy adott elem címét, amely egy asszociatív táblában (Map) van tárolva?
sobes.tech MI
Válasz az MI-től
Go nyelvben nem lehet közvetlenül megkapni egy map-ben tárolt konkrét elem címét. Ez azért van, mert a térkép elemei változtatások során mozgásban lehetnek a memóriában, és a fordító nem engedi a címének közvetlen megszerzését indexelésen keresztül, hogy elkerülje a hibákat.
Például a következő kód nem fog fordulni:
m := map[string]int{"a": 1}
p := &m["a"] // fordítási hiba: nem lehet megadni m["a"] címét
Ha a érték címével kell dolgoznia, akkor tárolhat mutatókat vagy struktúrákat a map-ben, és azok címét szerezheti meg:
m := map[string]*int{"a": new(int)}
*m["a"] = 42
Vagy másolja a értéket a map-ből egy változóba, és annak címét veheti.