OuJin

OuJin

V2EX member #597009, joined on 2022-10-11 11:38:08 +08:00
  •   You need to sign in to view this topic
    OuJin's recent replies
    @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 时指定类型,看看这样满不满足要求
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   892 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 10ms · UTC 22:08 · PVG 06:08 · LAX 15:08 · JFK 18:08
    ♥ Do have faith in what you're doing.