新手求教,以下两种实现方式有何区别?怎么选择使用哪一种方式?

shileislslsl · · 2461 次点击
一个是copy了整个struct 过去, 一个是copy 了 地址过去 ,地址应该只是一个int,要小很多能节省内存开销~
#5
更多评论
结构体在赋值给变量或者函数传参时,会复制一份 比如 //第二种 a:=DefaultParamsRequire() b := a b.IntMin = 10 a.IntMin的值还是-1 如果用第一种则不是复制一份,是引用关系,b变a也变
#1
go只有值传递的概念,也就是复制一份传给别人。然而,为了传递对象,或者自定义结构体,总不能也搞值传递吧。毕竟我生成一个对象也不容易。那怎么办呢?就把对象的地址传给你就行了。于是&就是取引用地址的。
#2