golang的方法绑定的类型,什么时候传值,什么时候传指针?下面两种写法都有看到,但不知怎么区分使用,请大佬指导一下:func(s*Widget)Do(){//...}func(sWidget)Do(){//...}
2 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
packagemainimport"fmt"typeABCstruct{datastring}//值传递func(aABC)delete(){a.data=""}//指针传递func(a*ABC)pdelete(){a.data=""}funcmain(){A:=ABC{"123"}fmt.Println(1,A.data)//值传递操作之后原值不变A.delete()fmt.Println(2,A.data)//指针传递之后,可以改变原值A.pdelete()fmt.Println(3,A.data)}/*输出112321233*/
添加回答
举报
0/150
提交
取消