~~~
package main
import "fmt"
//人
type Person struct {
name string
sex byte
age int
}
//学生
type Student struct {
Person // 匿名字段,那么默认Student就包含了Person的所有字段
id int
addr string
name string //和Person中的name同名
}
func main() {
var s Student //变量声明
//给Student的name,还是给Person赋值?
s.name = "mike"
fmt.Printf("%+v\n", s) //{Person:{name: sex:0 age:0} id:0 addr: name:mike}
//默认只会给最外层的成员赋值
//给匿名同名成员赋值,需要显示调用
s.Person.name = "Kim"
fmt.Printf("%+v\n", s) //Person:{name:Kim sex:0 age:0} id:0 addr: name:mike}
}
~~~