Golang中无法导入函数的问题如何解决
Golang中无法导入函数的问题如何解决

你好,
我在导入函数时遇到了问题。我的目录结构如上图所示。
我想将 handlerReadiness 函数从 handler_readiness.go 导入到 main.go 中。但是当我运行 main.go 文件时,它提示“未定义的 handlerReadiness”。
尽管当我将鼠标悬停在 handlerReadiness 上时,可以看到该函数已定义,并且可以通过 command+click 跳转到它的定义。
请帮助解决这个问题。
更多关于Golang中无法导入函数的问题如何解决的实战教程也可以访问 https://www.itying.com/category-94-b0.html
查看 handler_readiness.go 文件。
更多关于Golang中无法导入函数的问题如何解决的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
@falco467 是的,这个方法有效。非常感谢!
在同一个包内,这并不重要。
falco467:
我认为你需要使用:
go run .
好眼力。
这不是同一个包。如果是的话,那确实应该改变。
我使用跨多个文件的主包时遇到的只有麻烦。
小写名称表示“私有”,大写名称表示“公有”,因此你需要将函数重命名为以大写字母开头的名称。
你还希望为此使用另一个包,然后可以从你的主程序中导入它。
我认为你需要使用:go run .
而不是 go run main.go,后者只会编译单个文件,而不是目录中的所有 Go 文件。
Go 开发人员甚至建议在开发时应该使用 go build && go-project.exe 来运行你的代码,而不是使用 go run。
handler_readiness.go 文件与 main.go 位于同一目录下,因此它也必须属于 main 包。你不需要从同一包的另一个文件中导入函数。它们对该包的所有其他文件都是可用的。
如果你想将 handler_readiness.go 作为一个单独的包,请将其移动到子目录中,并确保函数是导出的(正如 @NobbZ 所描述的那样)。


