猿问

如何将结构作为函数的参数传递

我有几个配置 JSON 文件,每个文件都有每个文件的特定结构类型


目前我为每个文件/结构名称创建了一个函数:


type ConfigOne struct {

    App     string `json:"app"`

    Web     string `json:"web"`

    Archive string `json:"archive"`

}


type ConfigTwo struct {

    Options string `json:"options"`

    Source  string `json:"source"`

    Backup  bool `json:"backup"`

}

    

func ReadJsonConfigOne(file string, config *ConfigOne) error {

    str := GetContentFile(file)

    return json.Unmarshal([]byte(str), config)

}


func ReadJsonConfigTwo(file string, config *ConfigTwo) error {

    str := GetContentFile(file)

    return json.Unmarshal([]byte(str), config)

}


func main() {

    One := ConfigOne{}

    err := ReadJsonConfigOne("file_one.json", &One)

    

    Two := ConfigTwo{}

    err := ReadJsonConfigTwo("file_two.json", &Two)

    

    ../..

}

如何仅使用一个函数并将结构作为参数传递?


MM们
浏览 89回答 1
1回答

牛魔王的故事

func ReadJsonConfig(file string, config interface{}) error {    str := GetContentFile(file)    return json.Unmarshal([]byte(str), config)}用法func main() {    One := ConfigOne{}    err := ReadJsonConfig("file_one.json", &One)        Two := ConfigTwo{}    err := ReadJsonConfig("file_two.json", &Two)        ../..}使用接口作为函数参数。
随时随地看视频慕课网APP

相关分类

Go
我要回答