无法通过struct方法替换指针

时间:2019-02-22 17:35:21

标签: pointers go slice

有一个返回指针的struct方法:

<ons-splitter>
        <ons-splitter-side id="menu" side="left" width="220px" collapse swipeable>
          <ons-page>
            <ons-list>
              <ons-list-item onclick="fn.load('home.html')" tappable>
                Home
              </ons-list-item>
              <ons-list-item onclick="fn.load('altaVehiculo.html')" tappable>
                Alta de Vehículo
              </ons-list-item>
              <ons-list-item onclick="fn.load('busquedaTalleres.html')" tappable>
                Búsqueda de Talleres
              </ons-list-item>
              <ons-list-item onclick="fn.load('registroMantenimiento.html')" tappable>
                Registro de Mantenimiento
              </ons-list-item>
              <ons-list-item onclick="fn.load('listadoMantenimientos.html')" tappable>
                Listado de Mantenimientos
              </ons-list-item>
            </ons-list>
          </ons-page>
        </ons-splitter-side>
        <ons-splitter-content id="content" page="home.html"></ons-splitter-content>
      </ons-splitter>

d.Data是CellData的数组,它是具有多个字段的结构。通过这种方法,我可以修改每个字段的内部值,即:

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

但是我不能做这样的事情:

example.Get(p).Something = 123

我要用另一个指针替换指针的地方:

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

我在做什么错?该函数的输出已定义,不知道为什么我会收到该错误。现在,我通过直接访问数组来解决此问题。

谢谢。

1 个答案:

答案 0 :(得分:3)

Get返回一个指针,因此,如果要将其存储到该指针指向的内容中,则需要在开头添加*(指针取消引用):

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