如何去mod获取本地包?

How to go mod get local package?

我想要 go.mod 在 selfCheck 中获取一个文件夹(在 selfCheck 文件夹中获取包)。

selfCheck/encrypt , selfCheck/searchSchool

我的截图在这里

(不要介意供应商文件。我会删除它。)

您不需要在 go.mod 文件中要求项目本身的文件夹。 go.mod 只需要来自其他存储库的外部包。

我写了一篇关于从 Go 开始的博文,涵盖了这个问题。 https://marcofranssen.nl/start-on-your-first-golang-project

我还写了很多关于 Go 的文章https://marcofranssen.nl/categories/golang

总而言之,您应该使用 git 存储库的完整 url,以便其他项目可以依赖它作为最佳实践。

例如

go mod init github.com/your-user/selfcheck

完成后,您的 go.mod 文件如下所示。

module github.com/your-user/selfcheck

go 1.17

请注意,驼峰式外壳不是您命名包的方式。 Go包应该全部小写。

现在,如果你想按照你的要求创建子包,你应该创建文件夹。例如您的项目可能看起来像这样。

$ tree selfcheck
selfcheck
├── go.mod
├── main.go
└── searchschool
    └── searchschool.go

1 directory, 3 files

现在要从 searchschool 包中引用代码,您可以在 main.go.

中执行以下操作
package main

require (
    "fmt"

    "github.com/your-user/selfcheck/searchschool"
)

func main() {
    fmt.Println(searchschool.Excute())
}

请注意所有函数都必须以大写字母开头才能在 searchschool 包之外访问它们。例如。 searchschool/searchschool.go

package searchschool

func Execute() string {
    return privateFunc() + "!"
}

func privateFunc() string {
    return "Hello World"
}