go - 创建包含另一个结构字段的结构

标签 go struct

我怎样才能用另一个结构的字段创建一个结构

struct box {
    x int
    y int
}

struct textbox {
    BOXVALUES
    text string
}

最佳答案

Go 没有像 Java 那样的继承概念,您可以说 textbox 是 box 的子项,因此继承了它的字段。

所以你可以这样做: 类型框结构{ x整数 整数

type textbox struct {
  box
  text string
}

通过指定不带结构字段名称的 box 类型,您可以复制 box 结构中定义的字段 int textbox。然而,在构造过程中,您仍然必须显式地将 box 字段初始化为:

t := textbox {
  box: box{
    x: 1,
    y: 2,
  },
  text: "aoeu",
}

但是您不再需要在 textbox 中引用 box 进行访问,例如:

println(t.x)

Go 在这方面有点奇怪,因为 struct 不是一个对象,所以 textbox 实际上不是从 box 继承的,而是拥有它用一些语法糖复制到其中以便访问。

关于go - 创建包含另一个结构字段的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44005937/

相关文章:

go - 无法解释为什么 "55"被转换为 "7"

go - 在没有锁的情况下并发读取函数指针是否安全?

c - 在 C 中初始化大小的静态字符串列表

c - 为什么根节点值无效?

c - 指针未设置为 NULL (C)

javascript - 创建启用和禁用网络摄像头的 GNOME shell 扩展

go - 如何将结构转换为基本类型,而不是 Go 中的直接类型?

c++ - 使用结构模板的结构模板

arrays - 在结构中写入数组(Golang)

oracle - 如何连接到 Oracle 数据库?