我有一个这样结构的项目-- go.mod-- main.go-- hello.go-- folder1 -- test.go我想从主文件的 test.go 文件访问 hloFunc。package folder1import "fmt"func hloFunc() { fmt.Println("Hello Function from sub directory")}我不明白导入模块/包是如何工作的。我读过文章,但从未理解任何东西。如果我能深入了解这里实际发生的事情,那将非常有帮助。这是我的 go.mod 文件module testModulego 1.17我可以通过简单地在主文件中写入函数名称来访问 hello.go 文件中的任何函数,但我也想从子目录中访问函数。我怎样才能做到这一点?我应该在我的主文件中更改什么才能实现这一点package mainimport "testModule/folder1/"func main() { hloFunc()}
1 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
您的代码有 2 个(至少)问题。第一个问题是main.go
. 你应该删除它。
主程序
import "testModule/folder1"
第二个问题是您正试图从另一个包中调用未导出的函数。要解决这个问题,您应该导出它(通过将函数名称的第一个字母更改为大写) test.go
func HloFunc() { fmt.Println("Hello Function from sub directory") }
并使用包名来调用它。
主程序
func main() { folder1.Hlofunc() }
- 1 回答
- 0 关注
- 76 浏览
添加回答
举报
0/150
提交
取消