golang:结构体指针类型匿名字段
package main
import "fmt"
type Person struct {
name string
sex byte
age int
}
type Student struct {
*Person
id int
addr string
}
func main() {
s1 := Student{
&Person{
name: "a",
sex: 'm',
age: 18,
},
11,
"aaa",
}
fmt.Println(s1.name, s1.sex, s1.age, s1.id, s1.addr)
var s2 Student
s2.Person = new(Person)
s2.name = "yoyo"
s2.sex = 'm'
s2.age = 18
s2.id = 222
s2.addr = "sz"
fmt.Println(s2, s2.name, s2.sex, s2.age, s2.id, s2.addr, s2.Person, &s2.Person)
var s3 Student
s3.Person = new(Person)
s3.Person.name = "aaa"
s3.Person.sex = 'f'
s3.Person.age = 18
s3.id = 11
s2.addr = "sz"
fmt.Println(s3, s3.name, s3.sex, s3.age, s3.id, s3.addr, s3.Person, &s3.Person)
}
结果
a 109 18 11 aaa
{
0xc000004500 222 sz} yoyo 109 18 222 sz &{
yoyo 109 18} 0xc0000044e0
{
0xc000004580 11 } aaa 102 18 11 &{
aaa 102 18} 0xc000004560
还没有评论,来说两句吧...