Когда я получаю структуру из карты в Go, я получаю копию значения? Или я получаю фактическое значение, которое находится на карте?Поиск карты golang по значению или по ссылке?
Например, скажем, у меня есть карта от струн до структур:
type quality struct {
goodness int
crunchiness int
}
cookies := make(map[string]quality)
cookies["nutrageous"] = quality{goodness: 3, crunchiness: 10}
и я хочу изменить запись.
Могу ли я рассчитывать на то, что возвращаемое значение будет таким же, как на карте?
c := cookies["nutrageous"]
c.goodness += 5
Или мне также нужно вернуться и изменить, что находится на карте?
c := cookies["nutrageous"]
c.goodness += 5
cookies["nutrageous"] = c
Как есть _are_ нет ссылок в ответе, очевидно: по значению. – Volker
Я отлично открываю это, так как вы приняли ответ (мысль о закрытии будет препятствовать продолжению downvotes). Основная причина ответов одна и та же, поэтому хорошо понять, почему ваш пример не может работать, когда значение на карте не адресуется в первую очередь. – JimB
Таким образом, я нахожусь с вами на одном и том же ответе, и даже эти вопросы связаны с тем же недостатком информации. Но знания о SO должны быть проиндексированы под вопрос, и это разные индексы - наличие обоих вопросов, даже если они указывают на один и тот же ответ, все равно добавляет ценность сайту. – Brendan