登录
首页 >  Golang >  Go问答

可以将包含多个元素的结构转换为包含这些元素子集的结构吗?

来源:stackoverflow

时间:2024-02-23 23:45:26 350浏览 收藏

哈喽!今天心血来潮给大家带来了《可以将包含多个元素的结构转换为包含这些元素子集的结构吗?》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

我正在寻找一种将较大结构转换为另一个结构的方法,该结构包含较大结构中的属性子集。

类似于接口,但具有属性。

5141937186​​79

显然上面的代码不起作用:invalid operation: foobar (foobar类型的变量)不是一个接口

但随后的尝试不起作用

func main() {
    var foobar interface{} = Foobar{}
    bar := foobar.(*Bar)
    fmt.Println(bar)
}

panic 失败:接口转换:接口 {} 是 main.foobar,而不是 main.bar


解决方案


不同的结构体是不同的类型,不能互相赋值。我认为对于您想要做的事情,您只想要一个嵌套结构。

type (
    Bar struct {
        bar string
    }
    Foobar struct {
        foo string
        bar Bar
    }
)

func main() {
    foobar := Foobar{bar: Bar{"bbb"}}
    bar := foobar.bar
    fmt.Println(bar.bar)
}

此外,类型断言只能与接口一起使用。

终于介绍完啦!小伙伴们,这篇关于《可以将包含多个元素的结构转换为包含这些元素子集的结构吗?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

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