34、Go 结构体 - 面向对象之方法定义与返回值

作者: 温新

分类: 【Go基础】

阅读: 674

时间: 2023-12-05 00:27:03

hi,我是温新

方法声明语法

// 参数和返回值可以省略
func (recevier recevier_type) methodName(参数列表) (返回值列表) {
}

参数说明:

recevier:接收者名称;

recevier_type:接收者类型

定义方法的格式为,在方法名之前,func 关键字之后的括号中指定接收者。

方法简介

Go 语言中的方法是一种用于特定类型变量的函数,这种特定类型变量叫做接收器(receiver)。

接收者几乎可以是任意类型,但不能是接口和指针。因为接口是一个抽象定义,但方法必须是具体的实现。

方法案例

接收者为值类型

package main

func main() {

}

// 定义一个结构体
type Person struct {
}

// 无参数无返回值的方法
func (p Person) method1() {
}

// 单个参数,无返回值
func (p Person) method2(m int) {
}

// 多参数,无返回值
func (p Person) method3(m, n int) {
}

// 无参数,单返回值
func (p Person) method4() (m int) {
	return
}

// 多参数,多返回值
func (p Person) method5(m, n int) (z int, err error) {
	return
}

接收者为指针类型

package main

func main() {

}

// 定义一个结构体
type Person struct {
}

// 无参数无返回值的方法
func (p *Person) method1() {
}

// 单个参数,无返回值
func (p *Person) method2(m int) {
}

// 多参数,无返回值
func (p *Person) method3(m, n int) {
}

// 无参数,单返回值
func (p *Person) method4() (m int) {
	return
}

// 多参数,多返回值
func (p *Person) method5(m, n int) (z int, err error) {
	return
}
请登录后再评论