为什么 Go 有些时候指针参数在函数内不需要 `*ptr` ?

isLishude · · 431 次点击
其实不管是全局变量,还是对象方法 reciver 是指针对象,他们的目的都相同就是`在函数的作用域内更改函数外的值`。 以接收器来讲: ```go type foo struct { y int } func (f foo) set1(y int) { f.y = y } func (f *foo) set2(y int) { f.y = y } func TestFoo(t *testing.T) { var x foo x.set1(1) fmt.Println(x) x.set2(1) fmt.Println(x) } // {0} // {1} ``` 看上面的代码就很明白了吧?不明白在@我
#4
更多评论
func (p *person) setName(name string) 等同于 func setName(p *person,name string),修改对象的字段可以不带
#1
谢谢,刚刚我突然意识到这一点。
#2