登录
首页 >  Golang >  Go问答

编译器:尽管给出了所有参数,但给出了太多参数

来源:Golang技术栈

时间:2023-05-01 06:11:33 193浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《编译器:尽管给出了所有参数,但给出了太多参数》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下golang,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我想使用结构DataResponse作为参数JSON()来响应用户。通过初始化我的一个实例,DataResponse我得到了错误消息,给出了太多的参数,但给出了所有必要的。

type DataResponse struct {
    Status int         `json:"status"`
    Data   interface{} `json:"data"`
}

func GetUser(rw http.ResponseWriter, req *http.Request, ps httprouter.Params) {
    user := models.User{}
    // Fetching user from db

    resp := DataResponse(200, user)
    JSON(rw, resp) // rw is the ResponseWriter of net/http
}

编译器会抛出以下错误消息:

too many arguments to conversion to DataResponse: DataResponse(200, user)

DataResponse需要给定的两个参数并且Data是一个接口,因此它应该接受models.User为数据类型。

正确答案

resp := DataResponse(200, user)

语法错误。尝试使用花括号进行结构初始化:

resp := DataResponse{200, user}
                    ^         ^

今天带大家了解了golang的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表