2 回答

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
我相信包名稱是src,但我看到你正在嘗試導(dǎo)入src\funcrion沒(méi)有這樣的包稱為funcrion.
我認(rèn)為你應(yīng)該做這樣的事情 main.go
package main
import "src"
func main() {
src.Display();
}
或者如果您想將您的 src 包稱為 funcrion,則只需像下面這樣導(dǎo)入它,
import funcrion "src"
并確保您的文件結(jié)構(gòu)如下所示并且在 $GOPATH 內(nèi)
Users
└── clementbolin
└── go
└── src
├── main.go
└── src
└── function.go

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超7個(gè)贊
當(dāng)您執(zhí)行import "src/funcrion"此操作時(shí),go 編譯器將嘗試在 GOPATH 和 GOROOT 中搜索它,正如您在錯(cuò)誤消息中看到的那樣。它不會(huì)嘗試在當(dāng)前文件夾中搜索。由于它在 GOPATH 或 GOROOT 中都找不到具有該名稱的包,因此它會(huì)給您該錯(cuò)誤。
引用“當(dāng)前文件夾”的一個(gè)好方法是使用 go 模塊。在項(xiàng)目的根目錄上執(zhí)行$ go mod init myproject. (將 myproject 替換為更適合您的項(xiàng)目的名稱)
完成此操作后,您可以使用“myproject”在包名稱中引用項(xiàng)目文件夾,例如:
package main
import "myprject/src"
func main() {
src.Display();
}
另請(qǐng)注意,導(dǎo)入只到包名而不是文件名。所以,在你的情況下,你不應(yīng)該import myproject/src/function僅僅因?yàn)槟阍谝粋€(gè)包中有一個(gè)function.go文件。src
而且由于您的Display函數(shù)在src包內(nèi),因此您只需src.Display()在導(dǎo)入包后引用它。無(wú)需在任何地方指定文件名。
您可以在此處閱讀有關(guān) go 模塊的更多信息:https ://blog.golang.org/using-go-modules
另一個(gè)提示是不要src用作包名。在 Go 中,通常沒(méi)有“src”文件夾,并且作為包名也不是很好。例如,請(qǐng)參閱讀取的行src.Display()。本能地,我會(huì)將其解讀為“源頭的展示”之類的東西,沒(méi)有任何意義。但是,如果不是src您命名您的 package text,而是將同一行text.Display()讀取為“顯示一些文本”,這對(duì)于函數(shù)正在執(zhí)行的操作更準(zhǔn)確和更有意義。
- 2 回答
- 0 關(guān)注
- 128 瀏覽
添加回答
舉報(bào)