struct的匿名用法详解
Go只提供类型而不用写字段名的方式,也就是匿名字段,也称为嵌入字段。
当匿名字段是一个struct的时候,那么这个struct所拥有的全部字段都被隐式地引入了当前定义的这个struct。
举个例子,看实例可以更具体化理解:
package main import "fmt" type Person struct { name string age int weight int } type Student struct { Person // 匿名字段,那么默认Student就包含了Person的所有字段 speciality string } func main() { mark := Student{Person{"乔峰", 25, 120}, "擒龙手"}// 初始化一个学生 // 访问相应的字段 fmt.Println("名字是", mark.name) fmt.Println("年龄是 ", mark.age) fmt.Println("体重是 ", mark.weight) fmt.Println("技能是", mark.speciality) // 修改对应的技能信息 mark.speciality = "降龙十八掌" fmt.Println("技能更新升级") fmt.Println("新技能是 ", mark.speciality) // 修改他的年龄信息 mark.age = 36 fmt.Println("现在的年龄是", mark.age) // 修改他的体重信息 mark.weight += 30 fmt.Println("现在的体重是", mark.weight) }
通常struct定义的时候是字段名与其类型一一对应,上面通过匿名引用的方式而无需声明字段名。
无论从事什么行业,只要做好两件事就够了,一个是你的专业、一个是你的人品,专业决定了你的存在,人品决定了你的人脉,剩下的就是坚持,用善良專業和真诚赢取更多的信任。