Golang中函数及方法的区别

在Java等语言中,方法及函数几乎没有区别,但是在Golang中两者是完全不同的。官方给出解释中,方法是包含了接收者的函数。

函数的格式是固定的,由func 函数名 参数 返回值(可选) 函数体组成。例如:

func main(a,b int) (int) {
}

而方法会在func关键字后是接收者而不是函数名,接收者可以是自己定义的一个类型,这个类型可以说struct ,interface,甚至我们可以重定义基本数据类型。不过需要注意的是接收者是指针和非指针的区别,我们可以看到当接收者为指针时,可以通过方法改变该接收者的属性,但是非指针类型做不到。
方法示例如下:

func (list *List) Add(values ...interface{}) {
	list.growBy(len(values))
	for _, value := range values {
		list.elements[list.size] = value
		list.size++
	}
}

此外在Golang中有两个特殊的函数,main函数和init函数。main函数作为一个程序的入口,只能有一个。init函数在每个package中是可选的,可有可无,甚至可以有多个。init函数在你导入该package时程序会自动调用,且它只会被调用一次,因为当一个package被多次引用时,它只会被导入一次。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值