为了账号安全,请及时绑定邮箱和手机立即绑定

如何编写一个 Go 函数来接受不同的结构?

如何编写一个 Go 函数来接受不同的结构?

Go
HUX布斯 2021-11-01 17:14:16
我正在编写一个解析配置 JSON 文件并使用 json.Unmarshal 将其数据存储在结构中的函数。我做了一些研究,它让我明白了我有一个 Config 结构和一个 Server_Config 结构作为配置中的一个字段,允许我添加更多字段,因为我想要不同的类似配置的结构。如何编写一个 parseJSON 函数来处理不同类型的结构?代码:服务器端type Server_Config struct {    html_templates string}type Config struct {    Server_Config}func main() {    config := Config{}    ParseJSON("server_config.json", &config)    fmt.Printf("%T\n", config.html_templates)    fmt.Printf(config.html_templates)}配置文件package mainimport(    "encoding/json"    "io/ioutil"    "log")func ParseJSON(file string, config Config) {    configFile, err := ioutil.ReadFile(file)    if err != nil {        log.Fatal(err)    }    err = json.Unmarshal(configFile, &config)    if err != nil {        log.Fatal(err)    }}或者,如果有更好的方法来完成所有这些,也请告诉我。对 Go 来说还很陌生,而且我的脑海中已经刻有 Java 约定。
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

使用interface{}:


func ParseJSON(file string, val interface{}) {

    configFile, err := ioutil.ReadFile(file)

    if err != nil {

        log.Fatal(err)

    }

    err = json.Unmarshal(configFile, val)

    if err != nil {

        log.Fatal(err)

    }

}

调用函数是一样的。


查看完整回答
反对 回复 2021-11-01
  • 1 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信