新手學go,跨目錄調用方法是真的難,弄了好幾天,幾乎要放棄go了,在此演示一下如何跨目錄(包)調用~
需求是main.go調用model包下mysql.go中Query方法,目錄結構如下。
要點:
1.新建project時路徑需要用域名形式(帶符號‘.’),如test.cn,如果是普通的不帶'點'的名字 GoLand引用時會報錯。
2.設置中啟用“Enable Go Modules”
3.在項目跟目錄下執行go mod init
4.調用時帶上項目名,如import "test.cn/model"
具體方法:
1) project名使用域名,可新建test.cn,或者在已經建好的目錄上右鍵Refactor,把文件夾名和project名都改了。
2) Setting中設置啟用go module(其他go path之類的無需設置,使用默認),路徑:Go——Go Modules(vgo),勾選Enable Go Modules、不要勾選vendoring否則會有其他問題。
3) 在編輯器左下方找到“Terminal”選項卡,進入后執行 go mod init命令,提示creating new go.mod即為成功
4) 調用 import "test.cn/model",注意被調用的方法名首字母要大寫哦!
兩個文件代碼如下:
main.go
package main import ( "fmt" "test.cn/model" ) func main(){ var result string result = model.Query() fmt.Println(result) }
mysql.go
package model func Query() string{ return "張三" }
執行結果如下
import (
"fmt"
"test.cn/model"
)