这个程序怎么打印nil而不是hello?如何解决这种情况并成功将该指针存储在结构中?Go 不应该能够弄清楚何时在函数范围之外使用本地指针吗?package mainimport ( "fmt")type test struct { name *string}func (t test) test() { h := "hello" t.name = &h return}func main() { a := test{nil} a.test() fmt.Println(a.name)}
1 回答
达令说
TA贡献1821条经验 获得超6个赞
您的测试函数有一个值接收器。所以test将应用于a. 如果你想用一个方法改变一个结构,你应该写一个有指针接收器的方法。在调用该方法时,go 会自动使用该方法的引用
func (t *test) test() {
h := "hello"
t.name = &h
}
- 1 回答
- 0 关注
- 78 浏览
添加回答
举报
0/150
提交
取消