我有一个围棋项目的结构是这样的
-- go.mod
-- main.go
-- hello.go
-- folder1
-- test.go
我想从主文件的test.go文件访问hloFunc。
package folder1
import "fmt"
func hloFunc() {
fmt.Println("Hello Function from sub directory")
}
我不明白导入一个模块/包是如何工作的。我读过一些文章,但从来没有理解过任何东西。如果我能深入了解这里到底发生了什么,那将是非常有帮助的。
这是我的go.mod文件
module testModule
go 1.17
我可以从hello.go文件中访问任何函数,只需在主文件中写入函数名即可,但我也想从子目录中访问函数。我该怎么做呢?
我应该在我的主文件中做什么改变来实现这一点
package main
import "testModule/folder1/"
func main() {
hloFunc()
}
1条答案
按热度按时间xesrikrc1#
你的代码至少有两个问题。第一个问题是
main.go
中导入路径的尾部有一个不必要的斜杠。你应该删除它。第二个问题是你试图从另一个包中调用一个未导出的函数。要解决这个问题,你应该导出它(通过把函数名的第一个字母改为大写)* test.go *
并使用包名称来调用它。