英文:
How to copy content of an struct into a newly instantiated struct that extended the original struct?
问题
假设我有一个扩展另一个结构体的结构体。所以...
type Foo struct { A, B int64 }
type FooBar struct {
Foo
Bar string
}
我有一个包含某些值的 foo 结构体。我想创建一个 foobar 结构体,其中包含 foo 的内容,并将 bar 设置为某个值。我的问题是,将 foo 结构体的内容复制到新实例化的 foobar 结构体中的最简洁方法是什么?
myFoo := generateFoo()
myFooBar := ???
我假设有一种语法糖可以实现这一点,但是我在谷歌上找不到。对于我的实际用例,浅拷贝就足够了,但是如果可以进行深拷贝,那就更好了。
英文:
Lets say I have a struct that extends another struct. so...
type Foo struct { A, B int64 }
type FooBar struct {
Foo
Bar String
}
I have a foo struct with some value already contained within. I want to make a foobar struct with the content of foo plus bar being set to some value. My question is what is the cleanest way to copy the contents of my foo struct into my newly instantiated foobar struct?
myFoo := generateFoo()
myFooBar := ???
I assume there is some sort of syntactical sugar for this, but If so I swear I can't find it googling. For my actual use-case a shallow copy would suffice, but it would be good to know if a deep copy can be done as well.
答案1
得分: 4
不需要糖。值总是被复制。
myFoo := generateFoo()
myFooBar := FooBar { myFoo, myBar }
请注意,Go语言中没有"extends"关键字,也没有类型层级结构。
英文:
No sugar needed. Values are always copied.
myFoo := generateFoo()
myFooBar := FooBar { myFoo, myBar }
Note that there is no "extends" in Go, and no type hierarchy.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论