登录
首页 >  Golang >  Go问答

无法通过结构体方法替换指针

来源:stackoverflow

时间:2024-04-19 16:00:33 290浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《无法通过结构体方法替换指针》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

有一个返回指针的结构方法:

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)

我做错了什么?函数的输出已定义,不知道为什么会出现该错误。现在我通过直接访问数组修复了这个问题。

谢谢。


解决方案


get 返回一个指针,因此如果您想存储到该指针所指向的任何内容,则需要在开头添加 * (指针取消引用):

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

好了,本文到此结束,带大家了解了《无法通过结构体方法替换指针》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>