[GO]匿名字段的同名字段操作
Posted baylorqu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[GO]匿名字段的同名字段操作相关的知识,希望对你有一定的参考价值。
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里的字段同名了,那么被使用的时候,操作是studnet还是persion里的name ? //这里也是遵守作用域的就近规则 } func main() { var s Student s.name = "mike" fmt.Printf("s = %+v ", s)//通过打印就可以知道它操作的是student里的name,同样适用作用域的就近规则,如果没有找到,则找继承 //那么如果就是想操作person里的name呢? s.Person.name = "baylor" fmt.Printf("s = %+v ", 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}
以上是关于[GO]匿名字段的同名字段操作的主要内容,如果未能解决你的问题,请参考以下文章