码迷,mamicode.com
首页 > 其他好文 > 详细

[GO]匿名字段的同名字段操作

时间:2018-09-09 22:12:07      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:ike   pac   import   字段   通过   style   print   var   net   

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:0 age:0} id:0 addr: name:mike}
s = {Person:{name:baylor sex:0 age:0} id:0 addr: name:mike}

[GO]匿名字段的同名字段操作

标签:ike   pac   import   字段   通过   style   print   var   net   

原文地址:https://www.cnblogs.com/baylorqu/p/9615115.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!