猿问

咕噜回声控制器型号

我在尝试出厂时收到以下错误:


不能使用 &(personController literal) (type *personController 的值) 作为返回语句中的 PersonController 值:方法 CreateNewPerson 的类型错误(有 func(ctx github.com/labstack/echo/v4.Context) error, want func(ctx github.com/labstack/echo/v4.Context))


控制器:


package controllers


import (

    "net/http"


    "github.com/labstack/echo/v4"

)


type personController struct{}


var (

// services

)


type PersonController interface {

    CreateNewPerson(ctx echo.Context)

    GetPerson(ctx echo.Context)

}


func NewPersonController() PersonController {

    return &personController{}

}


func (*personController) CreateNewPerson(ctx echo.Context) error {

    return ctx.JSON(http.StatusOK, "Hello")

}


func (*personController) GetPerson(ctx echo.Context) error {

    return ctx.JSON(http.StatusOK, "Hello")

}

在我的主要功能ai得到了这个错误:


func main() {

    e := echo.New()

    controller := controllers.NewPersonController()

    e.POST("/a", controller.CreateNewPerson)

}

无法使用控制器。CreateNewPerson (类型 func(ctx echo.康泰克斯


LEATH
浏览 84回答 1
1回答

炎炎设计

您的接口和结构实现不匹配。如果您希望接口方法与 echo 框架所需的内容相匹配,请执行以下操作:type PersonController interface {     CreateNewPerson(ctx echo.Context) error     GetPerson(ctx echo.Context) error}
随时随地看视频慕课网APP

相关分类

Go
我要回答