如果咱们有一个个人档案的构造体,而后想给这个构造体绑定办法能够这样:
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()}