常用內建套件:1、fmt,可實現格式化的標準輸入輸出;2、io;3、bufio;4、sort;5、strconv;6、os;7、sync;8、flag ;9、encoding/json;10、html/template;11、net/http;12、reflect;13、os/exec;14、strings;15、bytes;16、log;17、time;18、regexp。
本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
Go 語言 的標準庫涵蓋網路、系統、加密、編碼、圖形等各個方面,可以直接使用標準庫的http 套件進行HTTP 協定的收發處理;網路庫基於高效能的作業系統通訊模型(Linux 的epoll、Windows 的IOCP);所有的加密、編碼都內建支持,不需要再從第三方開發者取得。
Go 語言的編譯器也是標準函式庫的一部分,透過詞法器掃描原始碼,使用語法樹獲得原始碼邏輯分支等。 Go 語言的周邊工具也是建立在這些標準函式庫上。在標準庫上可以完成幾乎大部分的需求。
Golang 的內建套件在安裝 Go 的時候多數會自動安裝到系統中。我們可以在 $GOROOT/src/pkg
目錄中查看這些套件。
Go語言的常用內建套件
#1) fmt
fmt 套件實現了格式化的標準輸入輸出,這與C語言中的printf 和scanf 類似。其中的 fmt.Printf() 和 fmt.Println() 是開發者使用最頻繁的函數。
格式化短語派生於C語言,一些短語(%- 序列)是這樣使用:
%v:預設格式的值。當列印結構時,加號(% v)會增加欄位名稱;
%#v:Go樣式的值表達;
2) io
這個套件提供了原始的 I/O 操作介面。它主要的任務是對 os 套件這樣的原始的 I/O 進行封裝,增加一些其他相關,使其具有抽像功能用在公共的介面上。
3) bufiobufio 套件透過對 io 套件的封裝,提供了資料緩衝功能,能夠一定程度減少大塊資料讀取寫入所帶來的開銷。
在 bufio 各個元件內部都維護了一個緩衝區,資料讀寫作業都直接透過快取區進行。當發起一次讀寫作業時,會先嘗試從緩衝區取得數據,只有當緩衝區沒有資料時,才會從資料來源取得資料更新緩衝。
4) sortsort 套件提供了用於對切片和使用者定義的集合進行排序的功能。
5) strconvstrconv 套件提供了將字串轉換成基本資料類型,或從基本資料類型轉換為字串的功能。
6) osos 套件提供了不依賴平台的作業系統函數接口,設計像Unix 風格,但錯誤處理是go 風格,當os 套件使用時,如果失敗後傳回錯誤類型而不是錯誤數量。
7) syncsync 套件實作多執行緒中鎖定機制以及其他同步互斥機制。
8) flagflag 套件提供命令列參數的規則定義和傳入參數解析的功能。絕大部分的命令列程式都需要用到這個套件。
9) encoding/jsonJSON 目前廣泛地用來做網路程式中的通訊格式。 encoding/json 套件提供了對 JSON 的基本支持,例如從一個物件序列化為 JSON 字串,或從 JSON 字串反序列化出一個具體的物件等。
10) html/template主要實作了 web 開發中產生 html 的 template 的一些函數。
11) net/httpnet/http 套件提供HTTP 相關服務,主要包括http 請求、回應和URL 的解析,以及基本的http 用戶端和擴充的http 服務。
透過 net/http 套件,只需要數行程式碼,即可實作一個爬蟲或一個 Web 伺服器,這在傳統語言中是無法想像的。
12) reflectreflect 套件實現了執行時間反射,允許程式透過抽象類型操作物件。通常用於處理靜態類型 interface{} 的值,並且透過 Typeof 解析出其動態類型訊息,通常會傳回一個有介面類型 Type 的物件。
13) os/execos/exec 套件提供了執行自訂 linux 指令的相關實作。
14) stringsstrings 套件主要是處理字串的一些函數集合,包括合併、尋找、分割、比較、後綴檢查、索引、大小寫處理等等。
strings 套件與 bytes 套件的函數介面功能基本一致。
15) bytes######bytes 套件提供了一系列對位元組切片進行讀寫操作的函數。位元組切片處理的函數比較多,分為基本處理函數、比較函數、後綴檢查函數、索引函數、分割函數、大小寫處理函數和子切片處理函數等。
16) log
log 套件主要用於在程式中輸出日誌。
log 套件中提供了三類日誌輸出接口,Print、Fatal 和 Panic。
Print 是普通輸出;
Fatal 是執行完Print 後,執行os.Exit(1);
Panic 是在執行完Print 後呼叫panic() 方法。
17)time
time 套件主要用於與時間相關的操作,例如格式化時間、將時間轉換為時間戳,將時間戳轉換為時間字串等操作。
18)regexp
對正規表示式的封裝。
以上是Go語言常用內建套件有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!