站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

golang包的特性是什么

特性:1、包名一般是小寫,用一個簡短且有意義的名稱;2、包名一般要和所在的目錄同名,也可不同名,包名中不能包含“-”等特殊符號;3、包一般使用域名作為目錄名稱,這樣能保證包名的唯一性;4、包名為main的包為應(yīng)用程序的入口包,編譯源碼時如果沒有main包時,將無法編譯輸出可執(zhí)行的文件;5、一個目錄下的所有源碼文件只能屬于同一個包,同樣屬于同一個包的源碼文件不能放在多個目錄下。

golang包的特性是什么

本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。

Go語言是使用包來組織源代碼的,包(package)是多個 Go 源碼的集合,是一種高級的代碼復(fù)用方案。Go語言中為我們提供了很多內(nèi)置包,如 fmt、os、io 等。

任何源代碼文件必須屬于某個包,同時源碼文件的第一行有效代碼必須是package pacakgeName 語句,通過該語句聲明自己所在的包。

包的基本概念

Go語言的包借助了目錄樹的組織形式,一般包的名稱就是其源文件所在目錄的名稱,雖然Go語言沒有強(qiáng)制要求包名必須和其所在的目錄名同名,但還是建議包名和所在目錄同名,這樣結(jié)構(gòu)更清晰。

包可以定義在很深的目錄中,包名的定義是不包括目錄路徑的,但是包在引用時一般使用全路徑引用。比如在GOPATH/src/a/b/ 下定義一個包 c。在包 c 的源碼中只需聲明為package c,而不是聲明為package a/b/c,但是在導(dǎo)入 c 包時,需要帶上路徑,例如import "a/b/c"

Go語言包特性

  • 包名一般是小寫的,使用一個簡短且有意義的名稱;

  • 包名一般要和所在的目錄同名,也可以與其目錄不同名(但最好不要這樣做),包名中不能包含- 等特殊符號。

  • 包一般使用域名作為目錄名稱,這樣能保證包名的唯一性,比如 GitHub 項(xiàng)目的包一般會放到GOPATH/src/github.com/userName/projectName 目錄下。

  • 包名為 main 的包為應(yīng)用程序的入口包,編譯不包含 main 包的源碼文件時不會得到可執(zhí)行文件。

  • 一個文件夾下的所有源碼文件只能屬于同一個包,同樣屬于同一個包的源碼文件不能放在多個文件夾下。

Go語言包設(shè)計(jì)思想

任何包系統(tǒng)設(shè)計(jì)的目的都是為了簡化大型程序的設(shè)計(jì)和維護(hù)工作,通過將一組相關(guān)的特性放進(jìn)一個獨(dú)立的單元以便于理解和更新,在每個單元更新的同時保持和程序中其它單元的相對獨(dú)立性。這種模塊化的特性允許每個包可以被其它的不同項(xiàng)目共享和重用,在項(xiàng)目范圍內(nèi)、甚至全球范圍統(tǒng)一的分發(fā)和復(fù)用。

每個包一般都定義了一個不同的名字空間用于它內(nèi)部的每個標(biāo)識符的訪問。每個名字空間關(guān)聯(lián)到一個特定的包,讓我們給 類型、函數(shù) 等選擇簡短明了的名字,這樣可以避免在我們使用它們的時候減少和其它部分名字的沖突。

當(dāng)我們修改了一個源文件,我們必須重新編譯該源文件對應(yīng)的包和所有依賴該包的其他包。即使是從頭構(gòu)建,Go 語言編譯器的編譯速度也明顯快于其它編譯語言。Go 語言的閃電般的編譯速度主要得益于三個語言特性。

顯式聲明

所有導(dǎo)入的包必須在每個文件的開頭顯式聲明,這樣的話編譯器就沒有必要讀取和分析整個源文件來判斷包的依賴關(guān)系。

禁止循環(huán)依賴

禁止包的環(huán)狀依賴,因?yàn)闆]有循環(huán)依賴,包的依賴關(guān)系形成一個有向無環(huán)圖,每個包可以被獨(dú)立編譯,而且很可能是被并發(fā)編譯。

目標(biāo)文件

編譯后包的目標(biāo)文件不僅僅記錄包本身的導(dǎo)出信息,目標(biāo)文件同時還記錄了包的依賴關(guān)系。因此,在編譯一個包的時候,編譯器只需要讀取每個直接導(dǎo)入包的目標(biāo)文件,而不需要遍歷所有依賴的的文件。

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
日韩三级电影视频| 精品综合久久久久久蜜月| 亚洲精品午夜在线观看| 99re久久精品国产首页2020| 日韩精品人妻系列无码av东京| 国产精品福利午夜在线观看| 精品少妇人妻AV一区二区三区| 日本阿v精品视频在线观看| 久久久国产精品亚洲一区| 久久九九久精品国产日韩经典| 好属妞这里只有精品久久 | 久久九九国产精品怡红院| 亚洲精品国产美女久久久| 91久久婷婷国产综合精品青草| 国产成人毛片亚洲精品| 日韩激情淫片免费看| 日韩欧国产精品一区综合无码| 国产精品青草久久| 精品伊人久久久久网站| 精品久久久久久久无码久中文字幕| 精品久久久久久久国产潘金莲| 2020天堂在线亚洲精品专区| 2020精品极品国产色在线观看| 亚洲国产综合精品| 米奇777四色精品人人爽| 2021最新国产成人精品视频| 538精品视频在线观看| 91麻豆精品激情在线观看最新| 老汉精品免费AV在线播放| 少妇人妻偷人精品免费视频| 久久久精品人妻一区二区三区| 亚洲av午夜福利精品一区人妖| 久久精品视频免费看| 一本大道久久a久久精品综合| 久久er99热精品一区二区| 久久99国产综合精品女同| 亚洲精品高清国产麻豆专区| 久久99精品久久久大学生| 91九色精品国产免费| 色综合久久精品亚洲国产| 黑人粗长大战亚洲女2021国产精品成人免费视频 |