如何将本地包导入包主体

时间:2019-08-21 08:40:20

标签: go

我尝试重构main.go并将代码分成不同的文件。
所以我将controller.go设为包控制器。
但是我无法将此本地包导入到main.go。

article
  ├ client
  ├ api
  │  ├ main.go
  │  └ contoroller
  │       └ contoroller.go
  ├ nginx
  └ docker-compose.yml
・client: react/axios
・api: golang/gin
・web-server: nginx
・db: mysql
・container: docker
・ci-tool: travis
・deploy: aws elastic beanstalk

main.go

package main

import (

"./contoroller"
)

    controller := controller.controller{}

    api := router.Group("/api")
    {
        api.GET("/articles", func(c *gin.Context) {
            controller.getArticleController(c, db)
        })
    }

    router.Run(":2345")
}

controller.go

package controller

import (
)

func getArticleController(c *gin.Context, db *sql.DB) {
}

我希望导入包控制器。
但是实际不是。

undefined: controller

2 个答案:

答案 0 :(得分:0)

我通过将article复制到$GOPATH/src/github.com/[user]/

来解决此问题。

答案 1 :(得分:-1)

如果要在包外使用该功能,则必须重命名对象。首字母应大写,而代码应在下一个

package main

import (

"./contoroller"
)

api := router.Group("/api")
{
    api.GET("/articles", func(c *gin.Context) {
        controller.GetArticleController(c, db)
    })
}

router.Run(":2345")

}

控制器

package controller

import (
)

func GetArticleController(c *gin.Context, db *sql.DB) {
}