2 回答
TA贡献1825条经验 获得超4个赞
TA贡献1773条经验 获得超3个赞
更新
在评论中进一步澄清之后。
您的模块未初始化。在此处和此处查找官方 Go 教程。我将在答案中逐步向您展示。
您首先需要go mod init在项目的根目录中使用。我假设您使用的是 Linux,但您可以在 Windows 中执行相同的命令。
在您的终端内:
$ go mod init github.com/Rachit4/colora
其次,为了让您的主包访问您在包 colora 中的功能,您需要将export它们更改为大写字母。
我的项目结构:
- colora (module github.com/Rachit4/colora)
- go.mod
- colora.go
- test.go
- test/
- main.go
请在我的 Go Playground 中查看代码。
例如,调用同一个包内的函数:
test.go
package colora
func test() {
red("I am red")
}
test/main.go
package main
import "github.com/Rachit4/colora"
func main() {
red("i am red") // this won't work
}
colora.go通过大写您的方法导出文件中的函数。
colora.go
func Red(text string) {
fmt.Println(string(colorRed), text)
}
现在它将可以main.go调用
colora.Red()
我建议阅读有关构建项目的内容,尽管 Go 对构建项目有非常宽松的指导方针——他们确实建议将实例的 pakcage 保存在单独的文件夹中。如果你想要更多的结构,你可以查看这个关于 Go 项目布局的GitHub 存储库。
旧答案
因此,如果我对您的理解正确,您有一个要在新项目中导入的 go 包(“github.com/Rachit4/colora”)?还是它仍然在同一个项目中?
如果你在一个新项目中导入它,你是否可能不小心给新项目一个同名的模块?
所以例如
项目一:
github.com/Rachit4/colora/(go.mod 中的模块)
colora.go
项目二:
github.com/Rachit4/colora/(go.mod 中的模块)
main.go <-- 导入“github.com/Rachit4/colora”
- 2 回答
- 0 关注
- 114 浏览
添加回答
举报