Go 使用自定義包(package)

2022-07-11 11:03:10 字數 1262 閱讀 5492

自定義包的分為兩種:

1.同目錄下的包;

2.不同目錄下的包;

*經測試,同目錄下是不可以用不同包的檔案的

同目錄下的包:

不同檔案中的變數和函式都可以直接訪問

不同目錄下的包:

1.把要在自定義包外部使用的變數或者函式的首字母

改為大寫!!!

,這樣外部可以訪問他們;

2.如果專案目錄不在gopath環境變數設定的路徑裡,需要把專案移到gopath路徑裡,或者gopath中把專案路徑設定進去;(gopath可設定多個)

如圖,我配置了我這個專案要用的gopath:

3.import 時,比如現在我要使用dbhandler這個包,只需要在main.go的import中寫上 "./dbhandler" 就匯入成功了;

dbhandler包在檔案管理器中的位置,如圖所示:

4.開始使用自定義包中的函式,需要註明包名,然後需要在包外部訪問的函式和變數都要以大寫開頭,如圖所示(左為main.go,右為dbhandler包中的內容):

5.構建和安裝你的自定義包,如圖所示,在src目錄下,也就是dbhandler包所在目錄開啟終端執行go build+包名 和 go install+包名,如果沒有報錯就說明構建和安裝成功了:

6.檢視自定義包的.a生成檔案,如圖所示:

關於import,有以下注意事項:

(1)在使用第三方包的時候,當原始碼和.a均已安裝的情況下,編譯器鏈結的是原始碼。

(2)到這裡我們明白了所謂的使用第三方包原始碼,實際上是鏈結了以該最新原始碼編譯的臨時目錄下的.a檔案而已。

(3)import後面的最後乙個元素應該是路徑,就是目錄,並非包名。

Go語言自定義包

半天匯入不了,自己寫的包在main.go或者其他go檔案匯入不進去。一直報錯,網上有很多解決辦法,但是大多不是很全面。首先自定義包匯入的時候,包名為包所在的資料夾名。為啥是資料夾名嘞,因為go在build的時候,預設以資料夾名為編譯後的檔名。舉例說明 檔案結構如下 aa main.go,go.mod...

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 為了能夠使用自定義函式來排序,我...