2 回答
TA贡献1827条经验 获得超9个赞
如果您的模块model不是本地的,那么您可以使用 Tonys 答案,它会正常工作,但如果您在本地使用此模块,那么您需要在go.mod文件中添加路径。
因此,例如,本地模块model仅包含model.go具有以下内容的模块
package model
type Example struct {
Name string
}
func (e *Example) Foo() string {
return e.Name
}
对于这个本地模块,必须必须用命令初始化模块,go mod init model并且内容./model/go.mod将是
module model
go 1.13
在要导入此模块的主模块中,您需要添加以下行
require model v1.0.0
replace model v1.0.0 => {Absolute or relative path to the model module}
因此,您的main测试模块的go.mod文件将如下所示
module main
require model v1.0.0
replace model v1.0.0 => ./model
go 1.13
通过设置,您可以在此模块中使用此test模块,只需import "model"
因此,当使用 main 方法测试模块时
package main
import (
model "model"
)
func main() {
example := model.Example{
Name: "Hello World",
}
println(example.Foo())
}
输出将是
Hello World
TA贡献1890条经验 获得超9个赞
如果你go.mod看起来像这样:
module github.com/meakesbia/myproject
go 1.14
那么您需要使用完整的模块参考导入模块包:
import "github.com/meakesbia/myproject/model"
如果它是一个完全本地的项目,则替换github.com/meakesbia为模型名称,go.mod例如:
module meakesbia/myproject
go 1.14
import "meakesbia/myproject/model"
您不需要向文件添加replace指令,go.mod除非您对从例如github导入的模块进行本地更改。
- 2 回答
- 0 关注
- 89 浏览
添加回答
举报