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

ttp71kqs  于 2022-12-07  发布在  Go
关注(0)|答案(1)|浏览(203)

我有一个围棋项目的结构是这样的

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

xesrikrc1#

你的代码至少有两个问题。第一个问题是main.go中导入路径的尾部有一个不必要的斜杠。你应该删除它。

  • 主音.开始 *
import "testModule/folder1"

第二个问题是你试图从另一个包中调用一个未导出的函数。要解决这个问题,你应该导出它(通过把函数名的第一个字母改为大写)* test.go *

func HloFunc() {
    fmt.Println("Hello Function from sub directory")
}

并使用包名称来调用它。

  • 主音.开始 *
func main() {
    folder1.Hlofunc()
}

相关问题