34、Go 结构体 - 面向对象之方法定义与返回值
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
}
请登录后再评论