登录
首页 >  Golang >  Go问答

如何在 Go 中填充具有大量嵌套结构的结构

来源:stackoverflow

时间:2024-04-17 23:24:32 333浏览 收藏

你在学习Golang相关的知识吗?本文《如何在 Go 中填充具有大量嵌套结构的结构》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

填充内部有大量嵌套结构的结构的最佳方法是什么? 我创建了一个结构体来从中生成一个 json 架构文件,如下所示:

type schema struct {
  schema               string `default:"http://json-schema.org/draft-04/schema#"`
  title                string `default:"test schema"`
  type                 string `default:"object"`
  additionalproperties bool   `default:false`
  properties           struct {
    core struct {
      type                 string
      additionalproperties bool
      properties           struct{}
    }
    work struct {
      type                 string
      additionalproperties bool
      properties           struct{}
    }
  }
}

起初,我想将默认数据放入标签中并从中填充结构,但 reflect 包不会查看嵌套结构内部。

这是我使用 reflect 所做的事情:

t := reflect.TypeOf(Schema{})
for i := 0; i < t.NumField(); i++ {
    field := t.Field(i)
    tag := field.Tag.Get("default")
}

解决方案


执行此操作的最佳方法是使用构造函数方法。与使用标签加反射相比,这将更具可读性,并且速度更快。像这样的东西:

func NewSchema() *Schema {
    return &Schema{
        Schema: "http://json-schema.org/draft-04/schema#",
        ...
    }
}

本篇关于《如何在 Go 中填充具有大量嵌套结构的结构》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

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