gpt4 book ai didi

go - 如何从 yaml 解码嵌入式结构

转载 作者:IT王子 更新时间:2023-10-29 01:25:49 25 4
gpt4 key购买 nike

我想使用嵌入式结构解码 yaml,主要用于 DRY:

package main

import (
"fmt"
"log"
"gopkg.in/yaml.v2"
)

type Person struct {
Name string
}

type Employee struct {
Person
Number string
}

func (c *Employee) Dump() {
d, err := yaml.Marshal(c)
if err != nil {
log.Fatalf("error: %v", err)
}
fmt.Printf("--- dump:\n%s\n\n", string(d))
}

func main() {
s := `
name: john
number: one
`

c := &Employee{}
err := yaml.Unmarshal([]byte(s), c)
if err != nil {
log.Fatalf("Unmarshal: %v", err)
}

c.Dump()
}

这导致:

--- dump:
person:
name: ""
number: one

如何解码嵌入的 Person?

最佳答案

您应该添加内嵌标签,例如:

type Employee struct {
Person `yaml:",inline"`
Number string
}

这将输出:

--- dump:
name: john
number: one

Here关于它的讨论

希望对你有帮助

关于go - 如何从 yaml 解码嵌入式结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53666084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com