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 }