如何访问go的主文件中的子目录?

我有一个这样结构的项目


--  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()

}


繁星点点滴滴
浏览 82回答 1
1回答

阿晨1998

您的代码有 2 个(至少)问题。第一个问题是main.go. 你应该删除它。主程序import "testModule/folder1"第二个问题是您正试图从另一个包中调用未导出的函数。要解决这个问题,您应该导出它(通过将函数名称的第一个字母更改为大写) test.gofunc HloFunc() {     fmt.Println("Hello Function from sub directory") }并使用包名来调用它。主程序func main() {     folder1.Hlofunc() }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go