是的,Golang 也有类似于 C++ 中 union 的特性。在 Golang 中被称为“结构体嵌入”,可以使用匿名字段实现。
示例代码如下:
package main
import (
"fmt"
)
type Union struct {
A int
B string
}
func main() {
u := Union{A: 1}
fmt.Println(u.A)
u.B = "hello"
fmt.Println(u.B)
}
在上面的例子中,我们定义了一个名为 Union 的结构体类型,包含两个字段:A 和 B。我们可以通过创建一个该类型的变量来访问这些字段。
值得注意的是,在 Golang 中,结构体嵌入还支持指针类型和接口类型。如果嵌入了一个接口类型,则该结构体必须实现此接口中声明的所有方法。




