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

求教一个关于go的问题

求教一个关于go的问题

Go
李元昊 2019-04-24 15:13:15
type Student struct {    Name string    Age  uint    Addr string}func (s *Student) ShowInfo() {    log.Println("此人名叫托尼,今年11岁,家住二龙湖")}func (s Student) ShowDetail() {    log.Println("此人名叫托尼,今年11岁,家住二龙湖")}func (Student) ShowDesc() {    log.Println("此人名叫托尼,今年11岁,家住二龙湖")}以上代码为go的一段代码,请教一下,函数的这三种绑定方法有什么区别?优缺点分别是什么?
查看完整描述

1 回答

?
pardon110

TA贡献1038条经验 获得超227个赞

看起来是三种,实质是两种。传址与传值的区别,前者方法内的操作,会改变结构体数据,后者由于得到的是一个副本,相当于局部变量,用完也就丢了,不会导致源数据发生变化。更通俗的说法,前者对Student类型是其它语言中类实例的操作,后者更多类似于常规函数的调用(对形参的改变,不会变更实参变量)。当然如果副本也是一个地址,那另当别论了

查看完整回答
1 反对 回复 2019-04-24
  • 1 回答
  • 0 关注
  • 1447 浏览
慕课专栏
更多

添加回答

举报

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