如果咱们有一个个人档案的构造体,而后想给这个构造体绑定办法能够这样:

package mainimport "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 mainimport "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()}