09.手撕Go語言-包

包是函數(shù)和數(shù)據(jù)的集合,將有相關(guān)特性的函數(shù)和數(shù)據(jù)放在統(tǒng)一的文件/目錄進(jìn)行管理,每個包都可以作為獨(dú)立的單元維護(hù)并提供給其他項(xiàng)目進(jìn)行使用

聲明

Go源文件都需要在開頭使用package聲明所在包,包名告知編譯器哪些是包的源代碼用于編譯庫文件中燥,其次包名用于限制包內(nèi)成員對外的可見性寇甸,最后包名用于在包外對公開成員的訪問

包名使用簡短的小寫字母,常與所在目錄名保持一致疗涉,一個包中可以由多個Go源文件拿霉,但必須使用相同包名

09.01.png

聲明兩個包,路徑分別為gpkgname/pkg01和gpkgname/pkg02

導(dǎo)入&調(diào)用

在使用包時需要使用import將包按路徑名導(dǎo)入咱扣,再通過包名調(diào)用成員

可通過import每行導(dǎo)入一個包绽淘,也可使用括號包含所有包并使用一個import導(dǎo)入

09.02.png

工作目錄結(jié)構(gòu)說明:

  • bin: 用于放置發(fā)布的二進(jìn)制程序
  • pkg: 用于放置發(fā)布的庫文件
  • src: 用于放置源代碼

運(yùn)行:

  1. 將chapter08/gv目錄添加到GOPATH環(huán)境變量中
  2. 編譯&運(yùn)行
    • 使用go build編譯二進(jìn)制文件

      命令:go build gpkgmain

      說明:編譯路徑gpkgmain下的包,main包闹伪,則在當(dāng)前目錄產(chǎn)生以pkgmain命名的二進(jìn)制程序

    • 使用go run運(yùn)行二進(jìn)制文件

      命令:go run gpkgmain

    • 使用go install編譯并發(fā)布二進(jìn)制文件

      命令:go install gpkgmain

      說明:編譯并發(fā)布路徑gpkgmain下的包沪铭,main包,則在將編譯后的以pkgmain命名的二進(jìn)制程序拷貝到bin目錄

    • 使用go install編譯發(fā)布庫文件

      命令:go install gpkgname/pkg01

      說明:編譯并發(fā)布路徑gpkgname/pkg01下的包偏瓤,非main包杀怠,則在將編譯的以包名命名的庫文件拷貝到pkg/GOOS_GOARCH目錄下

    • 使用go install編譯發(fā)布所有二進(jìn)制和庫文件

      命令:go install ./…

      說明:編譯并發(fā)布當(dāng)前路徑下的所有二進(jìn)制程序和庫文件

注意:Go語言不允許交叉導(dǎo)入包

導(dǎo)入形式

  1. 絕對路徑導(dǎo)入

    在GOPATH目錄中查找包

    示例:

    • import "fmt"
    • import "gpkgname/pkg01"
  2. 相對路徑導(dǎo)入

    在當(dāng)前文件所在的目錄查找

    示例:import "./gpkgname/pkg02"

  3. 點(diǎn)導(dǎo)入

    在調(diào)用點(diǎn)導(dǎo)入包中的成員時可以直接使用成員名稱進(jìn)行調(diào)用(省略包名)

    09.03.png
  4. 別名導(dǎo)入

    當(dāng)導(dǎo)入不同路徑的相同包名時,可以別名導(dǎo)入為包重命名厅克,避免沖突

    09.04.png
  5. 下劃線導(dǎo)入

    Go不允許包導(dǎo)入但未使用赔退,在某些情況下需要初始化包,使用空白符作為別名進(jìn)行導(dǎo)入证舟,從而使得包中的初始化函數(shù)可以執(zhí)行

    09.05.png

成員可見性

Go語言使用名稱首字母大小寫來判斷對象(常量硕旗、變量、函數(shù)女责、類型漆枚、結(jié)構(gòu)體、方法等)的訪問權(quán)限抵知,首字母大寫標(biāo)識包外可見(公開的)浪读,否者僅包內(nèi)可訪問(內(nèi)部的)

09.06.png

main包與main函數(shù)

main包用于聲明告知編譯器將包編譯為二進(jìn)制可執(zhí)行文件

在main包中的main函數(shù)是程序的入口,無返回值辛藻,無參數(shù)

init函數(shù)

init函數(shù)是初始化包使用碘橘,無返回值,無參數(shù)吱肌。建議每個包只定義一個痘拆。init函數(shù)在import包時自動被調(diào)用(const->var->init)

09.07.png
09.08.png
09.09.png

標(biāo)準(zhǔn)包

Go提供了大量標(biāo)準(zhǔn)包,可查看:https://golang.google.cn/pkg/

godoc工具

使用godoc命令可以在本地啟動golang網(wǎng)站氮墨,用于本地查看幫助手冊

09.10.png

幫助

  1. go list std:查看所有標(biāo)準(zhǔn)包

    09.11.png
  2. go doc packagename:查看包的幫助信息

    09.12.png
  3. go doc packagename.element:查看包內(nèi)成員幫助信息

    09.13.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纺蛆,一起剝皮案震驚了整個濱河市吐葵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌桥氏,老刑警劉巖温峭,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異字支,居然都是意外死亡凤藏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門堕伪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來揖庄,“玉大人,你說我怎么就攤上這事欠雌√闵遥” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵富俄,是天一觀的道長禁炒。 經(jīng)常有香客問我,道長霍比,這世上最難降的妖魔是什么齐苛? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮桂塞,結(jié)果婚禮上凹蜂,老公的妹妹穿的比我還像新娘。我一直安慰自己阁危,他們只是感情好玛痊,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著狂打,像睡著了一般擂煞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上趴乡,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天对省,我揣著相機(jī)與錄音,去河邊找鬼晾捏。 笑死蒿涎,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的惦辛。 我是一名探鬼主播劳秋,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了玻淑?” 一聲冷哼從身側(cè)響起嗽冒,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎补履,沒想到半個月后添坊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡箫锤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年贬蛙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片麻汰。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡速客,死狀恐怖戚篙,靈堂內(nèi)的尸體忽然破棺而出五鲫,到底是詐尸還是另有隱情,我是刑警寧澤岔擂,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布位喂,位于F島的核電站,受9級特大地震影響乱灵,放射性物質(zhì)發(fā)生泄漏塑崖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一痛倚、第九天 我趴在偏房一處隱蔽的房頂上張望规婆。 院中可真熱鬧,春花似錦蝉稳、人聲如沸抒蚜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嗡髓。三九已至,卻和暖如春收津,著一層夾襖步出監(jiān)牢的瞬間饿这,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工撞秋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留长捧,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓吻贿,卻偏偏與公主長得像唆姐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容