猿问

使用 Go 模块时如何导入本地包

我想创建一个大项目,所以我需要创建某种文件夹结构。我是 Go 的新手,但据我了解,这样做的方法是创建包,对吗?我正在使用 Go 模块,我已经尝试了很多不同的解决方案,在这里和谷歌上找到了,但它们似乎都不适合我。


我现在只想将导出的函数从 example.go 文件导入 main.go


文件夹结构如下:


client

example

---example.go

go.mod

go.sum

main.go

  1. 我已经使用 go mod init 创建了模块文件,请参见下面的第一个代码片段

  2. 第二个代码片段显示了 main.go 的标头的样子

  3. 第三个片段是具有我要导入的功能的包

   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”的情况下尝试过,但随后我收到一条错误消息,指出找不到路径模块。

非常感谢您的帮助,因为我已经坚持了很长一段时间并且无法弄清楚,我在这里错过了什么。


慕容3067478
浏览 127回答 1
1回答

梦里花落0921

它应该是这样的(main.go):package mainimport (    "exampleapp/example")func main() {    example.GetAllEmployees(...)}
随时随地看视频慕课网APP

相关分类

Go
我要回答