
正文
[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\n", s)//通过打印就可以知道它操作的是student里的name,同样适用作用域的就近规则,如果没有找到,则找继承
//那么如果就是想操作person里的name呢?
s.Person.name = "baylor"
fmt.Printf("s = %+v\n", s)
}
扫行的结果为
s = {Person:{name: sex: age:} id: addr: name:mike}
s = {Person:{name:baylor sex: age:} id: addr: name:mike}








