首页 >后端开发 >Golang >如何在 Go 中复制具有等效成员但类型不同的结构体?

如何在 Go 中复制具有等效成员但类型不同的结构体?

Linda Hamilton
Linda Hamilton原创
2024-12-11 18:47:14747浏览

How Can I Duplicate a Struct with Equivalent Members but Dissimilar Types in Go?

使用等效成员和不同类型复制结构

考虑以下场景:您有两个不同的结构体 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn