天天看點

Golang package

今天,靈感一現:不能一個檔案幹到底吧,那要是工程大了怎麼辦?

答案很簡單,“包”啊

GO裡的包,看起來很簡單,但又不簡單

一開始,我想當然的以為就是include 路徑一樣的問題

事實是,GO以GOPATH環境變量來管理的,其實,從你在應用标準包根本沒有路徑一說,就應該能猜到這個該死的結果了

好了,下邊,我們以一個例子來說明,避免網上那些看似很仔細的說,但就是怎麼也說不明白的症結吧!

一 找到你的GOPATH

echo $GOPATH

/root/gopkg //我的位置在這裡,你自己的肯定不一樣吧,當然,要是你跟我設定一樣,那就是這個了

二 我們自己庫源碼要放入的位置

$GOPATH/src/other

三 gin-1.go , gin-2.go源碼

//gin-1.go

package other

import (

  "fmt"

)

func Show1() {

  fmt.Println("1 is ok")

}

//gin-2.go

package other

import (

"fmt"

)

func Show2() {

fmt.Println("2 is ok")

}

四 編譯與安裝我們的other庫

在ohter 父目錄下執行

go build other

go install other

然後在$GOPATH/pkg/linux_amd64下會找到們生成庫other.a

五 祝賀你,現在你可以用other這個包了

//gin-main.go

package main

import (

  "other"

)

func main() {

  other.Show1()

  other.Show2()

}

//運作

go build gin-main.go

./gin-main

1 is ok

2 is ok

看,我們成功調用了自定義的GO庫

開心吧?哈哈哈

Finally:

這個問題,在實際工程開發中意義還是十分巨大的,希望你能了解并應用

當然,别問我,為何你說的這麼清楚?網上卻找不到這樣的博文

應該去問,那些人為何說不明白,哈哈哈哈!

轉載于:https://www.cnblogs.com/woodzcl/p/7560736.html