Skip to content

Go 標准庫簡介

寫下本文時,go的發行版已經來到了1.21,距離本站剛建立的時間也已經快有一年多了。

Go語言的標准庫非常的豐富(數據結構除外),功能也十分強大,API對開發人員而言十分友好,能夠熟練運用標准庫對日常開發將會有非常大的幫助。比如你可以不用任何外部依賴,僅使用net/httphtml/templatedatabase/sql這三個庫就可以開發一個獨立完整的Web項目。

標准庫的內容一直沒有更新是因為標准庫的內容實在太多了,所以下面會簡單的概括一些常用的標准庫的作用,這樣可以挑選自己感興趣的去了解,每一個標准庫的包級注釋都會詳細說明這個包是干什麼用的。

  • fmt,用於處理格式化輸入輸出的包
  • html,html模板操作包
  • net,提供一系列網絡操作的包,相當的強大
  • flag,命令行參數解析包
  • reflect,反射操作包
  • log,自帶的日志包
  • sort,排序操作包
  • regex,正則表達式包
  • image,圖像操作的包
  • time,時間操作的包
  • unicode,unicode字符集操作包
  • unsafe,提供沒有類型限制的指針操作
  • syscall,操作系統提供的系統調用包
  • testing,測試包,主要是寫測試的時候用。
  • sync ,並發操作包
  • context,上下文包
  • strconv,字符串轉換包
  • strings,字符串操作包
  • bytes,字節切片操作包
  • maps,map操作包
  • slices,切片操作包
  • io,定義了一系列基礎的IO接口,例如常用的CloserWriter等,還有一些基礎的IO操作函數。
  • io/fs,定義了一系列文件系統的接口,算是對文件系統的抽象。
  • os,操作系統進行交互的包,提供的是一系列具體的函數,可以簡單理解為是上面兩個的具體實現。
  • os/signal,操作系統信號包,用於監聽操作系統的信號,主要用於實現程序的優雅關閉。
  • os/exec,操作系統命令包,用於執行操作系統命令。
  • os/user,操作系統用戶包,用於獲取操作系統的用戶信息。
  • bufio,有緩沖IO讀寫包。
  • path,處理斜槓分隔路徑的包,例如url之類的。
  • path/filepath,處理文件路徑的包。
  • math,數學操作包
  • math/bits,位運算操作包
  • math/cmplx,復數操作包,也提供了一些三角函數的工具函數。
  • math/rand,偽隨機包
  • math/big,大數高精度計算包
  • container/heap,最小堆的實現
  • container/list,雙線鏈表的實現
  • container/ring,環的實現
  • archive/zip,zip壓縮歸檔的包
  • archive/tar,tar歸檔文件的包
  • compress,壓縮算法實現的包,比如gzip,flate。
  • database/sql,與數據庫進行交互的包
  • encoding,處理編碼的包,其下有很多子包,比如jsonxml之類的,還有base64這種。
  • crypto,處理加密的包,其下有很多子包,比如sha1,rsa等
  • go/ast,go源代碼抽象語法樹映射的包
  • go/parser ,將go源代碼解析成抽象語法樹的包
  • go/importer,提供了對導入器的訪問
  • go/format,go語言格式化包
  • areana,提供可手動分配和釋放內存的功能,處於實驗階段
  • runtime,運行時操作包,go中有許多操作都是這個包實現的。

Golang學習網由www.golangdev.cn整理維護