我看网上的大部分都是用 &T{}
什么时候需要加& ?
可以给段代码体现出区别吗?
new(T{}) 是不是 等同于 &T{}?
更多评论
谢谢你 试了下大概懂了 出个需要传递的时候 都要加& 而且定义参数的时候要定义 *T
否则 对T的修改不了。
```
package main
import (
"fmt"
)
type User struct {
name string
}
func func1(u User) {
u.name = "func 1"
}
func func2(u *User) {
u.name = "func 1"
}
func main() {
u1 := User{"user 1"}
u2 := &User{"user 2"}
fmt.Println(u1)
fmt.Println(u2)
func1(u1)
func2(u2)
fmt.Println(u1)
fmt.Println(u2)
}
```
结果:
{user 1}
&{user 2}
{user 1}
&{func 1}
#2