gpt4 book ai didi

go - 如何创建一个通用函数来解码所有类型?

转载 作者:IT王子 更新时间:2023-10-29 02:33:44 27 4
gpt4 key购买 nike

我下面有一个函数,我想让它通用:

func genericUnmarshalForType1(file string) Type1 {

raw, err := ioutil.ReadFile(file)

if err != nil {
fmt.Println(err.Error())
os.Exit(1)
}

var type1 Type1

json.Unmarshal(raw, &type1)
}

我想创建一个接受 Type1 或 Type2 的函数,而无需为每种类型创建一个函数。我该怎么做?

最佳答案

以同样的方式 json.Unmarshal 做:

func genericUnmarshal(file string, v interface{}) {
// File emulation.
raw := []byte(`{"a":42,"b":"foo"}`)
json.Unmarshal(raw, v)
}

Playground :http://play.golang.org/p/iO-cbK50BE .

您可以通过实际返回遇到的任何错误来改进此功能。

关于go - 如何创建一个通用函数来解码所有类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34440646/

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