结构体可以包含一个或多个匿名(或者称为内嵌)字段,即这些字段没有显式的名字。仅指明字段的类型,此时该类型就是字段的名字。匿名字段本身可以是一个结构体类型,即结构体可以包含内嵌的结构体。
匿名字段和面向对象编程中的继承概念相似,可以被用来模拟类似继承的行为。Golang 中的基础就是通过内嵌或组合来实现的,所以说在 Golang 中组合比继承更受欢迎。比如下面的例子:
type test struct {name stringage intint // 匿名字段
}
内嵌结构体
结构体也是一种数据类型,所以它同样可以作为匿名字段使用:
type Person struct {Name stringAge intEmail string
}type Student struct {PersonStudentID int
}
下面的代码可以声明并初始化 Student 类型的变量:
st := Student {Person: Person{"jack", 22, "jack@xxx"},StudentID: 1000,
}
从这个示例可以看出,内层结构体被简单地插入或者内嵌进外层结构体。这种简单的 “继承” 机制使得 Golang 很轻松就能实现从一个或一些类型中继承部分或全部的实现。
本文发布于:2024-01-29 10:36:41,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170649580614682.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |