gpt4 book ai didi

go - 在不声明结构的情况下传递接口(interface)对象

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

如何在不声明 Struct 的情况下传递 Interface{} 对象?例如,当我使用 Revel 框架时,我想在特定情况下返回错误。

  1. 以下示例不起作用,我尝试了各种约定都不起作用,正确的方法是什么?

    return c.RenderJson(interface{"error":"xyz"})

  2. 如果我使用 Revel 框架构建服务器,向客户端返回错误的正确方法是什么?

最佳答案

对于 1. 尝试以下操作:

return c.RenderJson(map[string]string{"error": "xyz"})

RenderJson 采用一个接口(interface),这意味着您可以将任何东西传递给它。您不需要显式转换为接口(interface),尽管这样做会像

interface{}(map[string]string{"error": "xyz"})

对于 2。我不确定,但我倾向于使用一个辅助函数来获取错误字符串(或错误类型)和状态代码并为我进行处理。

return HandleError(c, "xyz is not valid", 400)

然后 HandleError 只是创建并写入错误。

如果您一般要处理错误,我不知道您为什么不创建错误类型,

type RequestError struct {
Error string `json:"error_message"`,
StatusCode int `json:"status_code"`,
...
}

关于go - 在不声明结构的情况下传递接口(interface)对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28818680/

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