【发布时间】:2020-04-03 15:40:42
【问题描述】:
我正在寻找一种将较大结构转换为另一个结构的方法,该结构包含较大结构中的属性子集。
类似于接口,但具有属性。
package main
import "fmt"
type Foobar struct {
foo string
bar string
}
type Bar struct {
bar string
}
func main() {
foobar := Foobar{}
bar := foobar.(Bar)
fmt.Println(bar)
}
显然以上内容不适用于:invalid operation: foobar (variable of type Foobar) is not an interface
但随后的尝试不起作用
func main() {
var foobar interface{} = Foobar{}
bar := foobar.(*Bar)
fmt.Println(bar)
}
panic: interface conversion: interface {} is main.Foobar, not main.Bar 失败
【问题讨论】:
-
你可能想检查github.com/jinzhu/copier
标签: go