golang使用结构体的方法报错

  • Post author:
  • Post category:golang




错误代码示例
package user_api

import "github.com/gin-gonic/gin"

type UserApi struct {
}

func (UserApi) UserLogin(c *gin.Context) {
	c.JSON(200, gin.H{"hello": "world"})
}

.....
r := gin.Default()


//这里会报错

r.GET("/user", UserApi.UserLogin)
.....


错误原因

因为UserLogin是UserApi结构体的方法

当结构体没有实例化,是不能访问结构体的方法的

这与函数不同



正确写法
package user_api

import "github.com/gin-gonic/gin"

type UserApi struct {
}
//实例化结构体
var userApi =UserApi{}


func (UserApi) UserLogin(c *gin.Context) {
	c.JSON(200, gin.H{"hello": "world"})
}

.....
r := gin.Default()


//使用实例化结构体的方法
r.GET("/user", userApi.UserLogin)



版权声明:本文为weixin_46787337原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。