@
jorneyr func main() {
// 返回数据
var (
response1 = Response[map[string]string]{} // 返回 1, 数据类型 map[string]string
response2 = Response[map[int]int]{} // 返回 2, 数据类型 map[int]int
// ...
)
// 模拟接收到的数据
var (
body1, _ = json.Marshal(response1)
body2, _ = json.Marshal(response2)
)
// 解析
var (
result1, err1 = foo[map[string]string](body1) // 指定 T 类型为 map[string]string
result2, err2 = foo[map[int]int](body2) // 指定 T 类型为 map[int]int
)
fmt.Println(result1, err1)
fmt.Println(result2, err2)
}
func foo[T any](body []byte) (response Response[T], err error) {
err = json.Unmarshal(body, &response)
return
}
在调用 foo 时指定类型,看看这样满不满足要求