如果咱们有一个个人档案的构造体,而后想给这个构造体绑定办法能够这样:
package main
import "fmt"
// 定义一个装档案的构造体
type Archive struct {
name, gender string
age int
mom *Archive
dad *Archive
}
// 定义一个和档案构造体绑定的办法
func (person Archive) FormatArchive() {fmt.Printf("name: %s\n", person.name)
fmt.Printf("gender: %s\n", person.gender)
fmt.Printf("age: %d\n", person.age)
}
func main() {
// 实例化一个构造体
bill := Archive{name: "bill", age: 17, gender: "Male"}
// 调用构造体绑定的办法
bill.FormatArchive()}
那么,当咱们想在构造体绑定的办法上扭转构造体的数据的时候,咱们须要用指针,具体就是这样:
package main
import "fmt"
// 定义一个装档案的构造体
type Archive struct {
name, gender string
age int
mom *Archive
dad *Archive
}
// 定义一个和档案构造体绑定的办法
func (person Archive) FormatArchive() {fmt.Printf("name: %s\n", person.name)
fmt.Printf("gender: %s\n", person.gender)
fmt.Printf("age: %d\n", person.age)
}
// 定义一个扭转实力参数的函数
func (person *Archive) decrease_age() {person.age -= 1}
func main() {
// 实例化一个构造体
bill := Archive{name: "bill", age: 17, gender: "Male"}
// 调用构造体绑定的办法
bill.FormatArchive()
bill.decrease_age()
bill.FormatArchive()}