方法是特殊的函数,定义在某一特定的类型上,通过类型的实例来进行调用,这个实例被叫接收者(receiver)。

⽅法总是绑定对象实例,并隐式将实例作为第⼀实参 (receiver)。

方法是函数的语法糖,因为receiver其实就是方法所接收的第1个参数。

函数的基本格式:

// 定义
func FunctionName(parameters) results {
代码段
}
// 使用
FunctionName(parameters)

方法的基本格式:

// 定义
func (receiver ReceiverType接收方法类型) MethodName(parameters) results {
代码段
}
// 使用
receiver.MethodName()

具体使用:

package main

import "fmt"

type myInt int

func addFunc(a, b int) int {
return a + b
}

func (a myInt) addMethod(b myInt) myInt {
return a + b
}

func main() {
a := addFunc(1, 2)
fmt.Println(a)

var b myInt
b = 10
c := b.addMethod(20)
fmt.Println(c)
}

Go基础:函数与方法的区别_代码段