go 语言结构体函数

我们可以为结构体定义方法,并调用方法实现更丰富的功能, 

结构体函数定义语法

// 定义结构体方法
func (接收者变量 接收者类型) 函数名称(参数) 返回值类型 {
	//.....
}

示例

package main

import "fmt"

type Person struct {
	Name string
	Age  int
}

// 定义结构体方法
func (p Person) Say() {
	fmt.Println("Hello, I'm", p.Name)
}
// 定义结构体方法 [ 带有参数及返回值 ]
func (p Person) SayAge(agePlus int) int {
	fmt.Println("Hello, I'm", p.Age+agePlus)
	return p.Age + agePlus
}

func main() {
	var p1 = Person{
		"John",
		30,
	}
	p1.Say()
	p1.SayAge(10)
}