我是 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 檔案和包宣告,我已經好幾個小時都無法弄清楚了。
uj5u.com熱心網友回復:
每個目錄只能有一個包。如果您希望其中的代碼位于hello.go
單獨的包中,則需要將其移動到子目錄中。
首先,這假設您已經使用go mod init <something>
. 出于本示例的目的,我們將從以下內容開始:
go mod init example
這將創建我們的go.mod
檔案。接下來,我們設定正確的目錄結構:
.
├── go.mod
├── hello
│ └── hello.go
└── main.go
hello.go
是正確的書面(好吧,一旦你修復了你發布的代碼中的語法錯誤)。我們需要添加一個import
to main.go
:
package main
import "example/hello"
func main() {
hello.SayHello() //THIS IS THE FUNCTION IMPORTED FROM hello.go
}
這將構建一個產生預期輸出的可執行檔案:
$ go build
$ ./example
Hello!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/508330.html