1 package main
2
3 import "fmt"
4
5 type Person struct {
6 name string
7 }
8
9 func (p Person) show() {
10 fmt.Println("Person--->", p.name)
11 }
12
13 // 类型别名
14 type People = Person
15
16 func (p People) show2() {
17 fmt.Println("People--->", p.name)
18 }
19
20 type Student struct {
21 //嵌入两个结构体
22 Person
23 People
24 }
25
26 func main() {
27 var s Student //s.name = "王二狗" //ambiguous selector s.name
28 s.Person.name = "王二狗" //s.show() //ambiguous selector s.show
29 s.Person.show() // Person---> 王二狗
30
31 fmt.Printf("%T,%T\n", s.Person, s.People) //main.Person,main.Person
32
33 s.People.name = "李小花"
34 s.People.show2() // People---> 李小花
35 s.Person.show() // Person---> 王二狗
36 }