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 回答
- 0 关注
- 1485 浏览
添加回答
举报
0/150
提交
取消