[GO]非结构体匿名字段

package main

import (
    "fmt"
)

type mystr string  //给一个类型重命名

type Person struct {
    name string
    sex byte
    age int
}

type Student struct {
    Person    //只有名字,没有字段,这里student相当于继承了person的所有字段,就有点像是继承了
    int    //设置一个匿名字段
    mystr //引用自己设置的匿名字段
}
func main() {
    s := Student{Person{"baylor", 'm', 18}, 666, "NJ"} //匿名字段在这里直接赋值即可
    fmt.Println("s = ", s)
    fmt.Println("s.int = ", s.int) //对于匿名字段在这里直接调用也行
    s.Person = Person{"mike", 'f', 19}
    fmt.Println("s = ", s)
}

执行结果

s =  {{baylor 109 18} 666 NJ}
s.int =  666
s =  {{mike 102 19} 666 NJ}

猜你喜欢

转载自www.cnblogs.com/baylorqu/p/9616019.html