登录
首页 >  Golang >  Go问答

复制结构内容到新实例化结构的方法

来源:stackoverflow

时间:2024-03-19 15:18:28 374浏览 收藏

在 Go 语言中,结构体可以包含其他结构体,从而实现类似于继承的效果。当需要将一个结构体的内容复制到另一个扩展的结构体时,可以通过使用初始化语法直接赋值来实现。浅复制会复制所有字段的值,而深复制会递归地复制嵌套结构体的内容。

问题内容

假设我有一个扩展另一个结构的结构。所以...

type foo struct { a, b int64 }

type foobar struct { 
                     foo
                     bar string
                    }

我有一个 foo 结构,其中已包含一些值。我想创建一个 foobar 结构,并将 foo 加 bar 的内容设置为某个值。我的问题是将 foo 结构的内容复制到新实例化的 foobar 结构中的最干净的方法是什么?

myFoo := generateFoo()

myFooBar := ???

我认为这有某种语法糖,但如果是这样,我发誓我无法在谷歌上找到它。对于我的实际用例,浅复制就足够了,但最好知道是否也可以完成深复制。


正确答案


不需要加糖。值总是被复制。

myFoo := generateFoo()
myFooBar := FooBar { myFoo, myBar }

请注意,go 中没有“扩展”,也没有类型层次结构。

今天关于《复制结构内容到新实例化结构的方法》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>