package main import "fmt" type user struct { name string age int sex string } type admin struct { person user level string } func main() { u := user{name: "zhangsan", age: 12, sex: "女"} u.userReciver("里默默") //Go在代码背后的执行动做 //(&u).userReciver("里默默") //也可使用指针来调用使用值接收者声明的方法 u1 := &user{name: "zhangsan", age: 12, sex: "女"} u1.userReciver1() //获取的u1地址,须要经过地址获取值 fmt.Println(*u1) //自定义类型也能够嵌套。 ad := admin{ person: user{ name: "sawanhg", age: 34, sex: "男", }, level: "niubi", } fmt.Println(u) fmt.Println(ad) } //关键字func和函数名之间的参数被称做接收者,将函数与接收者的类型绑在一块儿。 // 若是一个函数有接收者,这个函数就被称为方法 func (u user) userReciver1() { u.name = "里默默你好" } //user值接者, // 和上面不使用指针的方法比更方便改完值后面继续用。 func (u *user) userReciver(name string) { u.name = name }