什么时候实用 &T{} 什么时候实用 T{}

wu1990 · · 1603 次点击
谢谢你 试了下大概懂了 出个需要传递的时候 都要加& 而且定义参数的时候要定义 *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
更多评论
加不加&, 可以理解成深拷贝与前拷贝的区别,加&是对T的引用。当作参数传递时一般加&,可以节约内存空间。
#1