我下面有一个函数,我想使其泛型:
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操作:
json.Unmarshal
func genericUnmarshal(file string, v interface{}) { // File emulation. raw := []byte(`{"a":42,"b":"foo"}`) json.Unmarshal(raw, v) }
游乐场:http : //play.golang.org/p/iO- cbK50BE。
通过实际返回遇到的任何错误,可以使此功能更好。