登录
首页 >  Golang >  Go问答

指针在结构体字段中存储的底层值存储在何处?

来源:stackoverflow

时间:2024-02-28 17:39:21 344浏览 收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《指针在结构体字段中存储的底层值存储在何处?》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

举个例子,让我们以这个结构为例

var input struct {
Title *string `json:"title"`
Year *int32 `json:"year"`
Runtime *data.Runtime `json:"runtime"`
Genres []string `json:"genres"`
}

我明白在解码 json 值时使用这样的指针值的目的。但我的问题是,当我们在输入字段(例如)input.title 中存储指向字符串的指针时,该指针的基础值存储在哪里?它只是随机存储在某个内存地址中吗?或者幕后到底发生了什么


正确答案


JSON 解码器调用 reflect.New 来获取指向新空字符串值的指针。解码器将值设置为解码后的字符串,并将 sets 结构体字段设置为指针。

reflect.New 函数调用私有运行时函数来为该值分配堆内存。该函数返回指向该内存的指针。

到这里,我们也就讲完了《指针在结构体字段中存储的底层值存储在何处?》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

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