1. 程式人生 > >[GO]匿名字段的同名字段操作

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

沒有 style color pan ike spa 繼承 printf 操作

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]匿名字段的同名字段操作