Невозможно заменить указатель с помощью метода struct - PullRequest
0 голосов
/ 22 февраля 2019

Получил метод struct, который возвращает указатель:

func (d *DataMap) Get(p Coord) *CellData {
    return &d.Data[p.X+(p.Y*d.Size)]
}

d.Data - это массив CellData, который представляет собой структуру с несколькими полями.С помощью этого метода я могу изменить внутреннее значение каждого поля, например:

example.Get(p).Something = 123

Но я не могу сделать что-то вроде этого:

example.Get(p) = *yada (yada is a *CellData)

Где я хочу заменить указатель другимуказатель я получаю:

cannot assign to example.Get(p)(undefined)

Что я делаю не так?Выходные данные функции определены, не знаю, почему я получаю эту ошибку.Прямо сейчас я исправил это, напрямую обращаясь к массиву.

Спасибо.

1 Ответ

0 голосов
/ 22 февраля 2019

Get возвращает указатель, поэтому, если вы хотите сохранить то, на что указывает указатель, вам нужно добавить * (разыменование указателя) в начале:

*(example.Get(p)) = *yada
...