我是 golang 的新手,到目前为止一直很喜欢它。到目前为止,我一直在内部编写我所有的应用程序逻辑main.go,屏幕上有这么多文本,它开始变得相当麻烦。我终其一生都无法弄清楚如何导入位于另一个 .go 文件中的外部函数。这是我要完成的基本示例main.gopackage mainfunc main() { SayHello() //THIS IS THE FUNCTION IMPORTED FROM hello.go{hello.gopackage helloimport "fmt"func SayHello() { fmt.Println("Hello!"){project structure/ -main.go -hello.go我知道这是一个相当简单的问题,但我尝试的一切都会导致我的控制台出现错误。在这个例子中,我只想将函数SayHello从 hello.go 文件导出到 main.go 文件中,据我所知,导出的任何内容都必须以大写字母开头。整个 go.mod 文件和包声明在顶部,如果每个文件让我感到困惑,我几个小时都无法弄清楚。
1 回答
Smart猫小萌
TA贡献1911条经验 获得超7个赞
每个目录只能有一个包。如果您希望其中的代码hello.go位于单独的包中,则需要将其移动到子目录中。
首先,这假设您已经使用go mod init <something>. 出于本示例的目的,我们将从以下内容开始:
go mod init example
这将创建我们的go.mod文件。接下来,我们设置正确的目录结构:
.
├── go.mod
├── hello
│ └── hello.go
└── main.go
hello.go写的是正确的(嗯,一旦你修复了你发布的代码中的语法错误)。我们需要添加一个import到main.go:
package main
import "example/hello"
func main() {
hello.SayHello() //THIS IS THE FUNCTION IMPORTED FROM hello.go
}
这将构建一个产生预期输出的可执行文件:
$ go build
$ ./example
Hello!
- 1 回答
- 0 关注
- 60 浏览
添加回答
举报
0/150
提交
取消