golang中的值方法和指针方法

本文探讨了Golang中结构体方法的两种形式:值方法和指针方法。值对象可以调用两者,而指针对象同样可以,这得益于Golang的语法糖特性。在接口实现和并发场景中,选择合适的方法类型至关重要,因为值方法可能导致数据竞争,而过多的指针可能加重垃圾回收负担。建议在不确定时使用指针方法。
摘要由CSDN通过智能技术生成

和其他的面向对象编程语言有所区别,golang中并没有直接提供对象语法,比如类似python, C++等中的class,而是以struct来间接实现面向对象编程
在给结构体对象添加方法的时候,接收者参数可以有两种类型,一种是值参数,还有一种则是指针参数

func(receiver Type) Method
func(receiver *Type) Method
值对象可以调用值方法&指针方法
type Person struct{
   
	Name string 
	Age int 
}
// 值方法
func(p Person) SayHello(){
   
	fmt.Printf("Hello, my name is %s\n", p.Name)
}
// 引用方法
func(p *Person) SetAge(age int){
   
	p.Age = age
}

func main(){
   
	var jack = Person{
   
  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值