此问题在此处已有答案:
"undefined" function declared in another file?(14个回答)
7天前关闭
我目前正在学习GoLang,为了更好地组织代码,我将代码分成多个文件。我的项目结构如下:
myproject/
main.go
hello-world.go
variable.go
字符集
main.go
package main
func main() {
printHelloWorld()
showVariable()
}
型
你好世界.去
package main
import "fmt"
func printHelloWorld() {
fmt.Println("Hello world")
}
型
变量。去
package main
import "fmt"
func showVariable() {
var a int = 5
fmt.Println(a)
}
型
当我运行go run main.go时,我得到以下错误消息:
ABIR Go Project %go run main.go
# command-line-arguments
./main.go:4:2: undefined: printHelloWorld
./main.go:5:2: undefined: showVariable
型
我相信这个问题与不同文件和包之间函数的可见性有关。我如何才能正确地访问Go项目中不同文件中的函数?我做错了什么?
我很感激你能提供的任何帮助或指导。谢谢!
2条答案
按热度按时间jtw3ybtb1#
正如其他人所说,你需要运行
go run .
。然而,我假设你还没有运行go mod init <module_name>
命令,因为我在你显示的文件夹结构中没有看到go.mod文件。因此,你应该做的是:1.运行
go mod init <module name of your choice>
举例来说:
go mod init my_awesome_project
。请注意,命名模块的惯例是将URI指定给您计划托管此模块的位置。但是,您仍然可以随意命名它。运行此命令意味着您将把文件夹转换为Go模块,因此允许Go访问其他文件。1.然后运行
go run .
apeeds0o2#
使用
go run .
命令编译和执行文件夹中的所有文件。但是,为了更好地查看和理解,您必须使用不同的文件夹结构。字符集
然后使用命令
型