我希望创建一个大型项目,因此需要创建某种文件夹结构。我对Go很陌生,但是据我所知,要做的方法是创建软件包,对吗?我正在使用Go模块,我尝试了在这里和Google上找到的许多不同解决方案,但是似乎没有一个适合我。
我现在要做的就是将example.go文件中的导出功能导入main.go
文件夹结构如下:
client
example
---example.go
go.mod
go.sum
main.go
module exampleapp
go 1.12
require (
github.com/gin-gonic/contrib v0.0.0-20190408155029-b5986969cb50
github.com/gin-gonic/gin v1.4.0
)
package main
import (
"net/http"
"exampleapp/example"
)
package example
import (
"net/http"
"github.com/gin-gonic/gin"
)
func GetAllEmployees(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "pong",
})
}
在大多数情况下,当我尝试在main.go中添加程序包时,VSCode会自动删除该行,并且在main函数中显示未定义GetAllEmployees。我设法在删除软件包之前捕获了错误的软件包,它说-
"imported and not used: "exampleapp/example"我在此处使用“ exampleapp / example”模块名称exampleapp会出错吗?我尝试了没有exampleapp和“ ./example/example”的情况,但是随后出现一个错误,提示它找不到路径模块。
我们将非常感谢您的帮助,因为我已经坚持了很长时间,并且无法弄清楚我在这里缺少什么。
答案 0 :(得分:3)
应该是这样(main.go):
package main
import (
"exampleapp/example"
)
func main() {
example.GetAllEmployees(...)
}