首页 > 后端开发 > Golang > 如何使用字段引用初始化 Go 中的嵌套结构体字段?

如何使用字段引用初始化 Go 中的嵌套结构体字段?

Patricia Arquette
发布: 2024-12-24 12:59:14
原创
868 人浏览过

How to Initialize Nested Struct Fields in Go Using Field References?

使用字段引用初始化嵌套结构

任务是在设置属于父结构的字段时使用文字值初始化嵌套结构。下面是一个示例:

type A struct {
    MemberA string
}

type B struct {
    A
    MemberB string
}
登录后复制

尝试直接在结构体文字中初始化 MemberA,如下所示,将会失败:

b := B {
    MemberA: "test1",
    MemberB: "test2",
}
fmt.Printf("%+v\n", b)
登录后复制

这会导致错误:“未知 B 字段 '结构体文字中的 MemberA'。”

要正确初始化 MemberA,您必须提供父结构体的有效实例, A,如以下代码所示:

b := B {
    A: A{MemberA: "test1"}, // Initialize the parent struct instance
    MemberB: "test2",
}
登录后复制

编译器错误消息“unknown B field 'MemberA' in structliteral”表明MemberA不是B的直接已知字段。相反,它属于嵌入式A类型。初始化 B 结构体时,匿名 A 实例仅在类型名称 A 下为人所知,并且其成员在创建之前在实例外部不可见。

以上是如何使用字段引用初始化 Go 中的嵌套结构体字段?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板