2015-05-20 31 views
2

我想使用struct 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作爲數據類型的兩個參數。

回答

12
resp := DataResponse(200, user) 

的語法是錯誤的。嘗試大括號結構初始化:

resp := DataResponse{200, user} 
        ^  ^
+0

我太專注於參數,我沒有看到缺失的大括號。 – user3147268

相關問題