使用等效成员和不同类型复制结构
考虑以下场景:您有两个不同的结构体 Foo 和 Bar,每个结构体都拥有相同的结构体成员,但其基础类型不同。您的目标是将一个结构的内容传输到另一个结构。
在这种情况下,请考虑以下结构定义:
type Common struct { Gender int From string To string } type Foo struct { Id string Name string Extra Common } type Bar struct { Id string Name string Extra Common }
给定 Foo 的实例 foo 和 Bar 的 bar,如何bar 可以从 foo 复制吗?
解决方案:输入转换
由于 Foo 和 Bar 的基本类型在结构上是等效的,因此可以采用类型转换来改变对象类型。以下代码演示了如何使用转换将 Foo 值复制到 Bar 值:
foo := Foo{Id: "123", Name: "Joe"} bar := Bar(foo)
类型兼容性说明
记住这种类型转换技术至关重要仅当结构的基础类型本质上相同时才有效,除了任何结构标记。
以上是如何在 Go 中复制具有等效成员但类型不同的结构体?的详细内容。更多信息请关注PHP中文网其他相关文章!