半天匯入不了,自己寫的包在main.go或者其他go檔案匯入不進去。一直報錯,網上有很多解決辦法,但是大多不是很全面。
首先自定義包匯入的時候,包名為包所在的資料夾名。為啥是資料夾名嘞,因為go在build的時候,預設以資料夾名為編譯後的檔名。
舉例說明:
//檔案結構如下
aa--
----
-main.go,go.mod
||--
---bb--
---test.go
||--
---vendor
aa資料夾下有main.go,go.mod,bb,vendor(go mod init, go mod vendor後出現的,儲存的是第三方包)資料夾。在bb檔案加包含了test.go檔案。
#初始化mod
go mod init
go mod vendor
會生成乙個mod檔案,如下所示。有些缺省會建立,在ubuntu上不會。
//包名,從src開始算
"aa/bb"
這樣導包,前面的aa是module的名字。bb是test.go所在父目錄的名字。可以先在bb資料夾下執行go build 和go install。
首先需要乙個go.mod,導包的包名為包所在資料夾名(字首為go.mod的module的名字,注意是module,不是資料夾名),訪問的時候使用package後面的名字來訪問。go.mod執行go mod init即可。不在mian.go同級或者同級子目錄下的包似乎不能導包。反正用go.mod不行。
Go 使用自定義包(package)
自定義包的分為兩種 1.同目錄下的包 2.不同目錄下的包 經測試,同目錄下是不可以用不同包的檔案的 同目錄下的包 不同檔案中的變數和函式都可以直接訪問 不同目錄下的包 1.把要在自定義包外部使用的變數或者函式的首字母 改為大寫!這樣外部可以訪問他們 2.如果專案目錄不在gopath環境變數設定的路徑...
Go 自定義排序
go語言包中包含了排序包 sort,其中針對一般的strings int型別已經有了排序方法 sort.ints a int sort.strings a string 1 分別實現三個函式 func p myslice len int func p myslice less i,j int boo...
Go 自定義排序
有的時候我們希望排序不是僅僅按照自然順序排序。例如,我們希望按照字串的長度來對乙個字串陣列排序而不是按照字母順序來排序。這裡我們介紹一下go的自定義排序。an highlighted block package main import sort import fmt 為了能夠使用自定義函式來排序,我...