struct的匿名用法详解
程序员文章站
2022-05-04 13:44:44
Go只提供类型而不用写字段名的方式,也就是匿名字段,也称为嵌入字段。 当匿名字段是一个struct的时候,那么这个struct所拥有的全部字段都被隐式地引入了当前定义的这个struct。 举个例子,看实例可以更具体化理解: 通常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定义的时候是字段名与其类型一一对应,上面通过匿名引用的方式而无需声明字段名。
上一篇: 设计模式系列 - 访问者模式
下一篇: PHP聊天室简单实现方法详解