8 4 Go語言常用內建包簡介

2021-10-06 22:48:50 字數 2014 閱讀 3095

標準的go語言**庫中包含了大量的包,並且在安裝 go 的時候多數會自動安裝到系統中。我們可以在 $goroot/src/pkg 目錄中檢視這些包。下面簡單介紹一些我們開發中常用的包。

1) fmt

fmt 包實現了格式化的標準輸入輸出,這與c語言中的 printf 和 scanf 類似。其中的 fmt.printf() 和 fmt.println() 是開發者使用最為頻繁的函式。

格式化短語派生於c語言,一些短語(%- 序列)是這樣使用:

2) io

這個包提供了原始的 i/o 操作介面。它主要的任務是對 os 包這樣的原始的 i/o 進行封裝,增加一些其他相關,使其具有抽象功能用在公共的介面上。

3) bufio

bufio 包通過對 io 包的封裝,提供了資料緩衝功能,能夠一定程度減少大塊資料讀寫帶來的開銷。

在 bufio 各個元件內部都維護了乙個緩衝區,資料讀寫操作都直接通過快取區進行。當發起一次讀寫操作時,會首先嘗試從緩衝區獲取資料,只有當緩衝區沒有資料時,才會從資料來源獲取資料更新緩衝。

4) sort

sort 包提供了用於對切片和使用者定義的集合進行排序的功能。

5) strconv

strconv 包提供了將字串轉換成基本資料型別,或者從基本資料型別轉換為字串的功能。

6) os

os 包提供了不依賴平台的作業系統函式介面,設計像 unix 風格,但錯誤處理是 go 風格,當 os 包使用時,如果失敗後返回錯誤型別而不是錯誤數量。

7) sync

sync 包實現多執行緒中鎖機制以及其他同步互斥機制。

8) flag

flag 包提供命令列引數的規則定義和傳入引數解析的功能。絕大部分的命令列程式都需要用到這個包。

9) encoding/json

json 目前廣泛用做網路程式中的通訊格式。encoding/json 包提供了對 json 的基本支援,比如從乙個物件序列化為 json 字串,或者從 json 字串反序列化出乙個具體的物件等。

10) html/template

主要實現了 web 開發中生成 html 的 template 的一些函式。

net/http 包提供 http 相關服務,主要包括 http 請求、響應和 url 的解析,以及基本的 http 客戶端和擴充套件的 http 服務。

通過 net/http 包,只需要數行**,即可實現乙個爬蟲或者乙個 web 伺服器,這在傳統語言中是無法想象的。

12) reflect

reflect 包實現了執行時反射,允許程式通過抽象型別操作物件。通常用於處理靜態型別 inte***ce{} 的值,並且通過 typeof 解析出其動態型別資訊,通常會返回乙個有介面型別 type 的物件。

13) os/exec

os/exec 包提供了執行自定義 linux 命令的相關實現。

14) strings

strings 包主要是處理字串的一些函式集合,包括合併、查詢、分割、比較、字尾檢查、索引、大小寫處理等等。

strings 包與 bytes 包的函式介面功能基本一致。

15) bytes

bytes 包提供了對位元組切片進行讀寫操作的一系列函式。位元組切片處理的函式比較多,分為基本處理函式、比較函式、字尾檢查函式、索引函式、分割函式、大小寫處理函式和子切片處理函式等。

16) log

log 包主要用於在程式中輸出日誌。

log 包中提供了三類日誌輸出介面,print、fatal 和 panic。

go常用包簡介

一 go 標準庫可以大致按其中庫的功能進行以下粗略的分類 輸入輸出。這個分類包括二進位制以及文字格式在螢幕 鍵盤 檔案以及其他裝置上的輸 入輸出等,比如二進位制檔案的讀寫。對應於此分類的包有bufio fmt io log和flag 等,其中 flag 用於處理命令列引數。文字處理。這個分類包括字串...

Go語言內建包之strconv

go語言中strconv包實現了基本資料型別和其字串表示的相互轉換。更多函式請檢視官方文件。這一組函式是我們平時程式設計中用的最多的。atoi 函式用於將字串型別的整數轉換為int型別,函式簽名如下。func atoi s string i int,err error 如果傳入的字串引數無法轉換為i...

go語言時間time包常用方法

時間和日期是我們程式設計中經常會用到的,本文主要介紹了go語言內建的time包的基本用法。time包提供了時間的顯示和測量用的函式。日曆的計算採用的是公曆。time.time型別表示時間。我們可以通過time.now 函式獲取當前的時間物件,然後獲取時間物件的年月日時分秒等資訊。示例 如下 func...