方法基本介绍:
在某些情况下,我们需要定义方法。比如Person结构体除了一些字段(年龄、姓名…)外,Person结构还有一些行为,比如说可以说话、跑步等,这时就需要方法才能完成。
Golang中的方法是作用在指定数据类型上的(即:和指定的数据类型绑定),因此自定义类型,都可以有方法,不仅仅是struct。
方法的声明和调用
type A struct {
Num int
}
func (a A) test() {
fmt.Println(a.Num)
}
(1)func (a A) test() {} 表示A结构体有一个方法,方法明为 test
(2)(a A)体现test方法是A类型绑定的
方法的快速入门
package main
import "fmt"
//定义一个结构体
type Person struct {
Name string
Age int
}
//给Person类绑定方法talk()
func (p Person) talk() {
fmt.Println(p.Name, p.Age)
}
//给Person类绑定方法run()
func (p Person) run() {
fmt.Println(p.Name, p.Age)
}
func main(){
var p1 Person
p1.Name = "tom"
p1.Age = 25
p1.talk() //调用方法talk()
p1.run() //调用方法run()
}