Golang 给结构体绑定方法

如果我们有一个个人档案的结构体,然后想给这个结构体绑定方法可以这样:

package mainimport "fmt"//定义一个装档案的结构体 type Archive struct { name, gender string ageint 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() }

【Golang 给结构体绑定方法】那么,当我们想在结构体绑定的方法上改变结构体的数据的时候,我们需要用指针,具体就是这样:
package mainimport "fmt"//定义一个装档案的结构体 type Archive struct { name, gender string ageint 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() }

    推荐阅读