我正在学习Go(来自Python),强制打字系统实际上很有帮助。我对的了解非常有限,导致我使用以下代码,其中我从API检索JSON数据并返回解析版本。结果可以是对象或对象列表。interface{}
func getJsonFromApi(endpoint string) (reply interface{}, err error) {
res, err := http.Get("http://127.0.0.42/api/" + endpoint)
if err != nil {
return nil, err
}
body, err := ioutil.ReadAll(res.Body)
err = res.Body.Close()
if err != nil {
return nil, err
}
err = json.Unmarshal(body, &reply)
return reply, nil
}
它有效,但我通过颠覆类型系统感到不舒服。这是 的预期用法吗?interface{}
我最终会将代码更改为始终返回一个对象数组(并在我的第一个用例中获取第一个对象),但我对一般问题感到好奇。
慕莱坞森
慕标5832272
相关分类