为了账号安全,请及时绑定邮箱和手机立即绑定

golang的方法绑定的类型,什么时候传值,什么时候传指针?

golang的方法绑定的类型,什么时候传值,什么时候传指针?

蓝山帝景 2019-05-09 22:30:13
golang的方法绑定的类型,什么时候传值,什么时候传指针?下面两种写法都有看到,但不知怎么区分使用,请大佬指导一下:func(s*Widget)Do(){//...}func(sWidget)Do(){//...}
查看完整描述

2 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

packagemain
import"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)
}
/*输出
1123
2123
3*/
                            
查看完整回答
反对 回复 2019-05-09
  • 2 回答
  • 0 关注
  • 816 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信