Я пытаюсь узнать о Golang языке
Сегодня у меня вопрос о экспортировать модуль в пакете с набором на Голанге.
Например, я хотел бы экспортировать UserCtrl
в пакете controllers
, и в пакете api
можно использовать UserCtrl
при импорте пакета controllers
.
Также я хочу экспортировать UserCtrl
с , набрав , что означает в api
, я могу вызвать именованные методы , пример UserCtrl.findOne()
или UserCtrl.findAll()
, не использовать map[string]interface{}
.
Итак, я создал новый тип UserCtrlType
в виде структуры в Golang
package controllers
import (
"github.com/gin-gonic/gin"
)
// UserCtrlType : Type controller for User
type UserCtrlType struct {
FindAll gin.HandlerFunc
FindOneByID gin.HandlerFunc
FindOneByUsername gin.HandlerFunc
}
// UserCtrl : Controller for User
var UserCtrl = UserCtrlType{
findAll,
findOneByID,
findOneByUsername,
}
func findAll(ctx *gin.Context) {
}
func findOneByID(ctx *gin.Context) {
}
func findOneByUsername(ctx *gin.Context) {
}
И в пакете api
,Я импортирую controller
и использую:
package api
import (
Controllers "github.com/huynhsamha/gin-go-app/controllers"
"github.com/gin-gonic/gin"
)
var userCtrl = Controllers.UserCtrl
func setUpUserRoutes(router *gin.RouterGroup) {
router.GET("/", userCtrl.FindAll)
router.GET("/n/:username", userCtrl.FindOneByUsername)
router.GET("/d/:id", userCtrl.FindOneByID)
}
Я работаю с Джин , поэтому структура UserCtrlType
повторяется много раз с типом gin.HandlerFunc
.
Есть ли другой способ решения моей проблемы, который может экспортировать UserCtrl
( напечатано ) и уменьшить повторяющиеся объявления type gin.HandlerFunc
.
Когда я работаю на Node.JS , я обнаружил, что экспортировать модули очень просто.Можем ли мы упростить эту проблему на Голанге?
Редактировать
Я нашел ответ на свою проблему.Я закрою этот вопрос в ближайшее время.Спасибо.