具有动态模式的Golang和Yaml

具有动态模式的Golang和Yaml,第1张

具有动态模式的Golang和Yaml

我决定添加一个显示类型断言的答案,而不是

reflect
包装。您可以决定最适合您的应用程序。我个人更喜欢内置函数,而不是
reflect
软件包复杂性

var data = `array:  - name: myvar    val: 1  - name: mymap    val: [1, 2]`type Data struct {    Array []struct {        Name string        Val  interface{}    }}func main() {    d := Data{}    err := yaml.Unmarshal([]byte(data), &d)    if err != nil {        log.Fatal(err)    }    for i := range d.Array {        switch val := d.Array[i].(type) {        case int: fmt.Println(val) // is integer        case []int: fmt.Println(val) // is []int        case []string: fmt.Println(val) // is []string //  .... you get the idea        default: log.Fatalf("Type unaccounted for: %+vn", d.Array[i])        }    }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5013037.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存