package mainimport ( "fmt")type Person struct { name string sex byte age int}type Student struct { Person //只有名字,没有字段,这里student相当于继承了person的所有字段,就有点像是继承了 id int addr string name string //这里跟person里的字段同名了,那么被使用的时候,操作是studnet还是persion里的name ? //这里也是遵守作用域的就近规则}func main() { var s Student s.name = "mike" fmt.Printf("s = %+v\n", s)//通过打印就可以知道它操作的是student里的name,同样适用作用域的就近规则,如果没有找到,则找继承 //那么如果就是想操作person里的name呢? s.Person.name = "baylor" fmt.Printf("s = %+v\n", s)}
扫行的结果为
s = {Person:{name: sex:0 age:0} id:0 addr: name:mike}s = {Person:{name:baylor sex:0 age:0} id:0 addr: name:mike}