接口与方法

方法

Go 语言中定义方法的语法为:

func (接收器名 接收器类型) 方法名(参数列表) {
  //方法体,可以访问接收器名
}

方法其实就是一个函数,在 func 这个关键字和方法名中间加入了一个特殊的接收器类型。
接收器类型可以是结构体类型或者是非结构体的自定义类型。
接收器名可以在方法的内部进行访问。

type str string

func (s str) getStrLen() int {
	return len(s)
}

func main() {
	var myStr str = "hello"
	strLen := myStr.getStrLen()
	fmt.Print("strLen is:",strLen)
}

Go 语言中不能在基础数据类型(比如 int 或 string)上直接定义方法,而只能在自定义的类型或者结构体上定义方法;类型的别名也不能定义方法,如“type myStr = string”中的 myStr 也是不可以为它定义方法。