2 回答
TA贡献1796条经验 获得超7个赞
最简单且开箱即用的解决方案是将您的database
包/模块放入 VCS(例如 github.com),因此其他包(在其他模块内)可以通过导入来简单地引用它,例如:
import "github.com/someone/database"
如果你这样做,你甚至不必go.mod
手动摆弄文件,一切都将由 go 工具来处理:它会自动识别并解决这种依赖关系,下载并安装所需的包,并自动go.mod
更新.
完全留在本地磁盘上
您database
在 之外创建了一个文件夹GOPATH
,并在其中创建了一个模块。你创建了另一个模块,我们称它为main
,你想使用这个database
包。
你必须做的是:
go.mod
您的main
模块必须将database
包列为“要求”。给你的database
包一个临时的 VCS 名称:require ( example.com/me/database v0.0.0)
你必须告诉 go 工具这个包所在的位置,因为我们使用的完整包名只是一个临时/幻想的名字。使用
replace
指令使这个database
包指向本地磁盘上的文件夹;您可以使用绝对路径和相对路径:replace example.com/me/database => ../database
就这样。
工作示例
让我们看一个工作示例。让我们创建一个pretty
模块。创建一个pretty
包含 2 个文件的文件夹:
漂亮去:
package pretty
import "fmt"
func Pretty(v ...interface{}) {
fmt.Println(v...)
}
go.mod(可以通过运行创建go mod init pretty):
module pretty
现在让我们创建另一个主模块。让我们在文件夹osinf旁边创建一个文件夹(可以是任何文件夹)pretty。里面有2个文件:
osinf.go(注意我们打算使用我们的pretty包/模块,我们通过导入它"example.com/me/pretty"):
package main
import "example.com/me/pretty"
func main() {
pretty.Pretty("hi")
pretty.Pretty([]int{1, 3, 5})
}
去.mod:
module main
require example.com/me/pretty v0.0.0
replace example.com/me/pretty => ../pretty
就这样。
go run osinf.go在文件夹中运行osinf,输出为:
hi
[1 3 5]
TA贡献1802条经验 获得超6个赞
跑步:
go mod init yellow
然后创建一个文件yellow.go:
package yellow
func Mix(s string) string {
return s + "Yellow"
}
然后创建一个文件orange/orange.go:
package main
import "yellow"
func main() {
s := yellow.Mix("Red")
println(s)
}
然后构建:
go build
https://golang.org/doc/code.html
- 2 回答
- 0 关注
- 110 浏览
添加回答
举报