這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
標準的Go 程式碼程式庫中包含了大量的包,並且在安裝Go 的時候多數會伴隨一起安裝。瀏
覽$GOROOT/src/pkg 目錄並且查看那些包會非常有啟發。無法對每個包就加以解說,不過下
面的這些值得討論:
fmt
包fmt 實現了格式化的I/O 函數,這與C 的printf 和scanf 類似。格式化短語派生於C
。一些短語(%-序列)這樣使用:
%v
預設格式的值。當列印結構時,加號(%+v)會增加欄位名;
%#v
Go 樣式的值表達;
%T
帶有類型的Go 樣式的值表達;
io
這個包提供了原始的I/O 操作介面。它主要的任務是對os 包這樣的原始的I/O 進行封
裝,增加一些其他相關,使其具有抽象功能用在公用的介面上。
bufio
這個包實現了緩衝的I/O。它封裝於io.Reader 和io.Writer 對象,建立了另一個對象
(Reader 和Writer)在提供緩衝的同時實現了一些文本I/O 的功能。
sort
sort 包提供了對數組和使用者定義集合的原始的排序功能。
strconv
strconv 包提供了將字串轉換成基礎資料型別 (Elementary Data Type),或者從基礎資料型別 (Elementary Data Type)轉換為字串
的功能。
os
os 包提供了與平台無關的作業系統功能介面。其設計是Unix 形式的。
sync
sync 包提供了基本的同步原語,例如互斥鎖。
flag
flag 包實現了命令列解析。參閱”命令列參數” 在第92 頁。
json
json 包實現了編碼與解碼RFC 4627 [22] 定義的JSON 對象。
template
資料驅動的模板,用於產生文本輸出,例如HTML。
將模板關聯到某個資料結構上進行解析。模板內容指向資料結構的元素(通常結構的
欄位或者map 的鍵)控制解析並且決定某個值會被顯示。模板掃描結構以便解析,而
“遊標”@ 決定了當前位置在結構中的值。
http
http 實現了HTTP 要求、響應和URL 的解析,並且提供了可擴充的HTTP 服務和基本
的HTTP 用戶端。
unsafe
unsafe 包包含了Go 程式中資料類型上所有不安全的操作。通常無須使用這個。
reflect
reflect 包實現了運行時反射,允許程式通過抽象類別型操作對象。通常用於處理靜態類
型interface{} 的值,並且通過Typeof 解析出其動態類型資訊,通常會返回一個有接
口類型Type 的對象。包含一個指向類型的指標,*StructType、*IntType 等等,描述
了底層類型的詳細資料。可以用於類型轉換或者類型賦值。參閱6,第”自省和反射”
節。
exec
exec 包執行外部命令。