go 的函数和方法

        go语言中函数的概念和c语言中的函数类似,函数名其实是一个指针,而go语言的方法是拥有接收者的函数,其实是c++中类的方法的概念。函数是独立存在的,而方法必须有接收者,即必须依附于某个对象。go语言使用struct来抽象对象。因此方法的接收者可以是struct实例或struct的指针。

type user struct {
        name  string,
        email string,
}

//这是函数的定义
func notify(email string) {
        fmt.Println("Email is %s", email)
}

//这是方法的定义
func (u user) notify(email string) {
        fmt.Println("Email is %d", email)
}

方法的接收者是struct的实例还是指针的区别是什么?实例会把struct的副本传入方法,方法内操作不影响原struct的内容。指针会把struct的地址传入方法,方法内的操作会修改到原struct的内容。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值