从同一目录中的另一个 go 文件导入外部函数和逻辑

我是 golang 的新手,到目前为止一直很喜欢它。到目前为止,我一直在内部编写我所有的应用程序逻辑main.go,屏幕上有这么多文本,它开始变得相当麻烦。我终其一生都无法弄清楚如何导入位于另一个 .go 文件中的外部函数。这是我要完成的基本示例


main.go


package main


func main() {

     SayHello() //THIS IS THE FUNCTION IMPORTED FROM hello.go

{

hello.go


package hello


import "fmt"


func SayHello() {

     fmt.Println("Hello!")

{

project structure


/

    -main.go

    -hello.go

我知道这是一个相当简单的问题,但我尝试的一切都会导致我的控制台出现错误。在这个例子中,我只想将函数SayHello从 hello.go 文件导出到 main.go 文件中,据我所知,导出的任何内容都必须以大写字母开头。整个 go.mod 文件和包声明在顶部,如果每个文件让我感到困惑,我几个小时都无法弄清楚。


慕桂英3389331
浏览 61回答 1
1回答

Smart猫小萌

每个目录只能有一个包。如果您希望其中的代码hello.go位于单独的包中,则需要将其移动到子目录中。首先,这假设您已经使用go mod init <something>. 出于本示例的目的,我们将从以下内容开始:go mod init example这将创建我们的go.mod文件。接下来,我们设置正确的目录结构:.├── go.mod├── hello│&nbsp; &nbsp;└── hello.go└── main.gohello.go写的是正确的(嗯,一旦你修复了你发布的代码中的语法错误)。我们需要添加一个import到main.go:package mainimport "example/hello"func main() {&nbsp; &nbsp; hello.SayHello() //THIS IS THE FUNCTION IMPORTED FROM hello.go}这将构建一个产生预期输出的可执行文件:$ go build$ ./exampleHello!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go