Golang系列中常用包
阿新 • • 發佈:2018-11-08
一、常用包
常用包 | 說明 | 常用函式 |
---|---|---|
fmt | 實現格式化的輸入輸出操作,其中的fmt.Printf()和fmt.Println()是開發者使用最為頻繁的函式。 |
|
io | 實現了一系列非平臺相關的IO相關介面和實現,比如提供了對os中系統相關的IO功能的封裝。我們在進行流式讀寫(比如讀寫檔案)時,通常會用到該包。 | |
bufio | 它在io的基礎上提供了快取功能。在具備了快取功能後, bufio可以比較方便地提供ReadLine之類的操作。 | |
strconv | 提供字串與基本資料型別互轉的能力。 | |
os | 本包提供了對作業系統功能的非平臺相關訪問介面。介面為Unix風格。提供的功能包括檔案操作、程序管理、訊號和使用者賬號等。 | |
sync | 它提供了基本的同步原語。在多個goroutine訪問共享資源的時候,需要使用sync中提供的鎖機制。 | |
flag | 它提供命令列引數的規則定義和傳入引數解析的功能。絕大部分的命令列程式都需要用到這個包。 | |
encoding/json | JSON目前廣泛用做網路程式中的通訊格式。本包提供了對JSON的基本支援,比如從一個物件序列化為JSON字串,或者從JSON字串反序列化出一個具體的物件等。 | |
http | 通過http包,只需要數行程式碼,即可實現一個爬蟲或者一個Web伺服器,這在傳統語言中是無法想象的。 |
二、完整包列表
目錄 | 包 | 說明 |
---|---|---|
bufio | 實現緩衝的I/O | |
bytes | 提供了對位元組切片操作的函式 | |
crypto | 收集了常見的加密常數 | |
errors | 實現了操作錯誤的函式 | |
Expvar | 為公共變數提供了一個標準的介面,如伺服器中的運算計數器 | |
flag | 實現了命令列標記解析 | |
fmt | 實現了格式化輸入輸出 | |
hash | 提供了雜湊函式介面 | |
html | 實現了一個HTML5相容的分詞器和解析器 | |
image | 實現了一個基本的二維影象庫 | |
io | 提供了對I/O原語的基本介面 | |
log | 它是一個簡單的記錄包,提供最基本的日誌功能 | |
math | 提供了一些基本的常量和數學函式 | |
mine | 實現了部分的MIME規範 | |
net | 提供了一個對UNIX網路套接字的可移植介面,包括TCP/IP、 UDP域名解析和UNIX域套接字 | |
os | 為作業系統功能實現了一個平臺無關的介面 | |
path | 實現了對斜線分割的檔名路徑的操作 | |
reflect | 實現了執行時反射,允許一個程式以任意型別操作物件 | |
regexp | 實現了一個簡單的正則表示式庫 | |
runtime | 包含與Go執行時系統互動的操作,如控制goroutine的函式 | |
sort | 提供對集合排序的基礎函式集 | |
strconv | 實現了在基本資料型別和字串之間的轉換 | |
strings | 實現了操作字串的簡單函式 | |
sync | 提供了基本的同步機制,如互斥鎖 | |
syscall | 包含一個低階的作業系統原語的介面 | |
testing | 提供對自動測試Go包的支援 | |
time | 提供測量和顯示時間的功能 | |
unicode | Unicode編碼相關的基礎函式 | |
archive | tar | 實現對tar壓縮文件的訪問 |
zip | 提供對ZIP壓縮文件的讀和寫支援 | |
compress | bzip2 | 實現了bzip2解壓縮 |
flate | 實現了RFC 1951中所定義的DEFLATE壓縮資料格式 | |
gzip | 實現了RFC 1951中所定義的gzip格式壓縮檔案的讀和寫 | |
lzw | 實現了 Lempel-Ziv-Welch編碼格式的壓縮的資料格式 | |
zlib | 實現了RFC 1950中所定義的zlib格式壓縮資料的讀和寫 | |
container | heap | 提供了實現heap.Interface介面的任何型別的堆操作 |
lsit | 實現了一個雙鏈表 | |
ring | 實現了對迴圈連結串列的操作 | |
crypto | aes | 實現了AES加密(以前的Rijndael) |
cipher | 實現了標準的密碼塊模式,該模式可包裝進低階的塊加密實現中 | |
des | 實現了資料加密標準( Data Encryption Standard,DES)和三重資料加密演算法( TripleData Encryption Algorithm, TDEA) | |
dsa | 實現了FIPS 186-3所定義的資料簽名演算法( Digital Signature Algorithm) | |
ecdsa | 實現了FIPS 186-3所定義的橢圓曲線資料簽名演算法( Elliptic Curve Digital Signature Algorithm) |
|
elliptic | 實現了素數域上幾個標準的橢圓曲線 | |
hmac | 實現了鍵控雜湊訊息身份驗證碼( Keyed-Hash Message Authentication Code, HMAC) |
|
md5 | 實現了RFC 1321中所定義的MD5雜湊演算法 | |
rand | 實現了一個加密安全的偽隨機數生成器 | |
rc4 | 實現了RC4加密,其定義見Bruce Schneier的應用密碼學( Applied Cryptography) | |
rsa | 實現了PKCS#1中所定義的RSA加密 | |
sha1 | 實現了RFC 3174中所定義的SHA1雜湊演算法 | |
sha256 | 實現了FIPS 180-2中所定義的SHA224和SHA256雜湊演算法 | |
sha512 | 實現了FIPS 180-2中所定義的SHA384和SHA512雜湊演算法 | |
subtle | 實現了一些有用的加密函式,但需要仔細考慮以便正確應用它們 | |
tls | 部分實現了RFC 4346所定義的TLS 1.1協議 | |
x509 | 可解析X.509編碼的鍵值和證書 | |
x509/pkix | 包含用於對X.509證書、 CRL和OCSP的ASN.1解析和序列化的共享的、低階的結構 | |
database | sql | 圍繞SQL提供了一個通用的介面 |
sql/driver | 定義了資料庫驅動所需實現的介面,同sql包的使用方式 | |
debug | dwarf | 提供了對從可執行檔案載入的DWARF除錯資訊的訪問,這個包對於實現Go語言 的偵錯程式非常有價值 |
elf | 實現了對ELF物件檔案的訪問。 ELF是一種常見的二進位制可執行檔案和共享庫的 檔案格式。 Linux採用了ELF格式 |
|
gosym | 訪問Go語言二進位制程式中的除錯資訊。對於視覺化除錯很有價值 | |
macho | 實現了對http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/ MachORuntime/Reference/reference.html 所定義的Mach-O物件檔案的訪問 |
|
pe | 實現了對PE( Microsoft Windows Portable Executable)檔案的訪問 | |
encoding | ascii85 | 實現了ascii85資料編碼,用於btoa工具和Adobe’s PostScript以及PDF文件格式 |
asn1 | 實現瞭解析DER編碼的ASN.1資料結構,其定義見ITU-T Rec X.690 | |
base32 | 實現了RFC 4648中所定義的base32編碼 | |
base64 | 實現了RFC 4648中所定義的base64編碼 | |
binary | 實現了在無符號整數值和位元組串之間的轉化,以及對固定尺寸值的讀和寫 | |
csv | 可讀和寫由逗號分割的數值( csv)檔案 | |
gob | 管理gob流——在編碼器(傳送者)和解碼器(接收者)之間進行二進位制值交換 | |
hex | 實現了十六進位制的編碼和解碼 | |
json | 實現了定義於RFC 4627中的JSON物件的編碼和解碼 | |
pem | 實現了PEM( Privacy Enhanced Mail)資料編碼 | |
xml | 實現了一個簡單的可理解XML名字空間的XML 1.0解析器 | |
go | ast | 聲明瞭用於展示Go包中的語法樹型別 |
build | 提供了構建Go包的工具 | |
doc | 從一個Go AST(抽象語法樹)中提取原始碼文件 | |
parser | 實現了一個Go原始檔解析器 | |
printer | 實現了對AST(抽象語法樹)的列印 | |
scanner | 實現了一個Go原始碼文字的掃描器 | |
token | 定義了代表Go程式語言中詞法標記以及基本操作標記( printing、 predicates)的常 量 |
|
hash | adler32 | 實現了Adler-32校驗和 |
crc32 | 實現了32位的迴圈冗餘校驗或CRC-32校驗和 | |
crc64 | 實現了64位的迴圈冗餘校驗或CRC-64校驗和 | |
fnv | 實現了Glenn Fowler、 Landon Curt Noll和Phong Vo所建立的FNV-1和FNV-1a未加 密雜湊函式 |
|
html | template | 它自動構建HTML輸出,並可防止程式碼注入 |
image | color | 實現了一個基本的顏色庫 |
draw | 提供一些做圖函式 | |
gif | 實現了一個GIF影象解碼器 | |
jpeg | 實現了一個JPEG影象解碼器和編碼器 | |
png | 實現了一個PNG影象解碼器和編碼器 | |
index | suffixarray | 通過構建記憶體索引實現的高速字串匹配查詢演算法 |
io | ioutil | 實現了一些實用的I/O函式 |
log | syslog | 提供了對系統日誌服務的簡單介面 |
math | big | 實現了多精度的算術運算(大數) |
cmplx | 為複數提供了基本的常量和數學函式 | |
rand | 實現了偽隨機數生成器 | |
mime | multipart | 實現了在RFC 2046中定義的MIME多個部分的解析 |
net | http | 提供了HTTP客戶端和伺服器的實現 |
實現了對郵件訊息的解析 | ||
rpc | 提供了對一個來自網路或其他I/O連線的物件可匯出的方法的訪問 | |
smtp | 實現了定義於RFC 5321中的簡單郵件傳輸協議( Simple Mail Transfer Protocol) | |
textproto | 實現了在HTTP、 NNTP和SMTP中基於文字的通用的請求/響應協議 | |
url | 解析URL並實現查詢轉義 | |
http/cgi | 實現了定義於RFC 3875中的CGI(通用閘道器介面) | |
http/fcgi | 實現了FastCGI協議 | |
http/httptest | 提供了一些HTTP測試應用 | |
http/httputil | 提供了一些HTTP應用函式,這些是對net/http包中的東西的補充,只不過相對 不太常用 |
|
http/pprof | 通過其HTTP伺服器執行時提供效能測試資料,該資料的格式正是pprof視覺化工 具需要的 |
|
rpc/jsonrpc | 為rpc包實現了一個JSON-RPC ClientCodec和ServerCodec | |
os | exec | 可執行外部命令 |
user | 通過名稱和id進行使用者賬戶檢查 | |
path | filepath | 實現了以與目標作業系統定義檔案路徑相相容的方式處理檔名路徑 |
regexp | syntax | 將正則表示式解析為語法樹 |
runtime | debug | 包含當程式在執行時除錯其自身的功能 |
pprof | 以pprof視覺化工具需要的格式寫執行時效能測試資料 | |
sync | atomic | 提供了低階的用於實現同步演算法的原子級的記憶體機制 |
testing | iotest | 提供一系列測試目的的型別,實現了Reader和Writer標準介面 |
quick | 實現了用於黑箱測試的實用函式 | |
script | 幫助測試使用通道的程式碼 | |
text | scanner | 為UTF-8文字提供了一個掃描器和分詞器 |
tabwriter | 實現了一個寫篩選器( tabwriter.Writer),它可將一個輸入的tab分割的列 翻譯為適當對齊的文字 |
|
template | 資料驅動的模板引擎,用於生成類似HTML的文字輸出格式 | |
template/parse | 為template構建解析樹 | |
unicode/utf16 | 實現了UTF-16序列的的編碼和解碼 | |
unicode/utf8 | 實現了支援以UTF-8編碼的文字的函式和常數 |
參考《Go語言程式設計》
一、常用包
常用包 | 說明 | 常用函式 |
---|---|---|
fmt | 實現格式化的輸入輸出操作,其中的fmt.Printf()和fmt.Println()是開發者使用最為頻繁的函式。 | |
io | 實現了一系列非平臺相關的IO相關介面和實現,比如提供了對os中系統相關的IO功能的封裝。我們在進行流式讀寫(比如讀寫檔案)時,通常會用到該包。 | |
bufio | 它在io的基礎上提供了快取功能。在具備了快取功能後, bufio可以比較方便地提供ReadLine之類的操作。 | |
strconv | 提供字串與基本資料型別互轉的能力。 | |
os | 本包提供了對作業系統功能的非平臺相關訪問介面。介面為Unix風格。提供的功能包括檔案操作、程序管理、訊號和使用者賬號等。 | |
sync | 它提供了基本的同步原語。在多個goroutine訪問共享資源的時候,需要使用sync中提供的鎖機制。 | |
flag | 它提供命令列引數的規則定義和傳入引數解析的功能。絕大部分的命令列程式都需要用到這個包。 | |
encoding/json | JSON目前廣泛用做網路程式中的通訊格式。本包提供了對JSON的基本支援,比如從一個物件序列化為JSON字串,或者從JSON字串反序列化出一個具體的物件等。 | |
http | 通過http包,只需要數行程式碼,即可實現一個爬蟲或者一個Web伺服器,這在傳統語言中是無法想象的。 |
二、完整包列表
目錄 | 包 | 說明 |
---|---|---|
bufio | 實現緩衝的I/O | |
bytes | 提供了對位元組切片操作的函式 | |
crypto | 收集了常見的加密常數 | |
errors | 實現了操作錯誤的函式 | |
Expvar | 為公共變數提供了一個標準的介面,如伺服器中的運算計數器 | |
flag | 實現了命令列標記解析 | |
fmt | 實現了格式化輸入輸出 | |
hash | 提供了雜湊函式介面 | |
html | 實現了一個HTML5相容的分詞器和解析器 | |
image | 實現了一個基本的二維影象庫 | |
io | 提供了對I/O原語的基本介面 | |
log | 它是一個簡單的記錄包,提供最基本的日誌功能 | |
math | 提供了一些基本的常量和數學函式 | |
mine | 實現了部分的MIME規範 | |
net | 提供了一個對UNIX網路套接字的可移植介面,包括TCP/IP、 UDP域名解析和UNIX域套接字 | |
os | 為作業系統功能實現了一個平臺無關的介面 | |
path | 實現了對斜線分割的檔名路徑的操作 | |
reflect | 實現了執行時反射,允許一個程式以任意型別操作物件 | |
regexp | 實現了一個簡單的正則表示式庫 | |
runtime | 包含與Go執行時系統互動的操作,如控制goroutine的函式 | |
sort | 提供對集合排序的基礎函式集 | |
strconv | 實現了在基本資料型別和字串之間的轉換 | |
strings | 實現了操作字串的簡單函式 | |
sync | 提供了基本的同步機制,如互斥鎖 | |
syscall | 包含一個低階的作業系統原語的介面 | |
testing | 提供對自動測試Go包的支援 | |
time | 提供測量和顯示時間的功能 | |
unicode | Unicode編碼相關的基礎函式 | |
archive | tar | 實現對tar壓縮文件的訪問 |
zip | 提供對ZIP壓縮文件的讀和寫支援 | |
compress | bzip2 | 實現了bzip2解壓縮 |
flate | 實現了RFC 1951中所定義的DEFLATE壓縮資料格式 | |
gzip | 實現了RFC 1951中所定義的gzip格式壓縮檔案的讀和寫 | |
lzw | 實現了 Lempel-Ziv-Welch編碼格式的壓縮的資料格式 | |
zlib | 實現了RFC 1950中所定義的zlib格式壓縮資料的讀和寫 | |
container | heap | 提供了實現heap.Interface介面的任何型別的堆操作 |
lsit | 實現了一個雙鏈表 | |
ring | 實現了對迴圈連結串列的操作 | |
crypto | aes | 實現了AES加密(以前的Rijndael) |
cipher | 實現了標準的密碼塊模式,該模式可包裝進低階的塊加密實現中 | |
des | 實現了資料加密標準( Data Encryption Standard,DES)和三重資料加密演算法( TripleData Encryption Algorithm, TDEA) | |
dsa | 實現了FIPS 186-3所定義的資料簽名演算法( Digital Signature Algorithm) | |
ecdsa | 實現了FIPS 186-3所定義的橢圓曲線資料簽名演算法( Elliptic Curve Digital Signature Algorithm) |
|
elliptic | 實現了素數域上幾個標準的橢圓曲線 | |
hmac | 實現了鍵控雜湊訊息身份驗證碼( Keyed-Hash Message Authentication Code, HMAC) |
|
md5 | 實現了RFC 1321中所定義的MD5雜湊演算法 | |
rand | 實現了一個加密安全的偽隨機數生成器 | |
rc4 | 實現了RC4加密,其定義見Bruce Schneier的應用密碼學( Applied Cryptography) | |
rsa | 實現了PKCS#1中所定義的RSA加密 | |
sha1 | 實現了RFC 3174中所定義的SHA1雜湊演算法 | |
sha256 | 實現了FIPS 180-2中所定義的SHA224和SHA256雜湊演算法 | |
sha512 | 實現了FIPS 180-2中所定義的SHA384和SHA512雜湊演算法 | |
subtle | 實現了一些有用的加密函式,但需要仔細考慮以便正確應用它們 | |
tls | 部分實現了RFC 4346所定義的TLS 1.1協議 | |
x509 | 可解析X.509編碼的鍵值和證書 | |
x509/pkix | 包含用於對X.509證書、 CRL和OCSP的ASN.1解析和序列化的共享的、低階的結構 | |
database | sql | 圍繞SQL提供了一個通用的介面 |
sql/driver | 定義了資料庫驅動所需實現的介面,同sql包的使用方式 | |
debug | dwarf | 提供了對從可執行檔案載入的DWARF除錯資訊的訪問,這個包對於實現Go語言 的偵錯程式非常有價值 |
elf | 實現了對ELF物件檔案的訪問。 ELF是一種常見的二進位制可執行檔案和共享庫的 檔案格式。 Linux採用了ELF格式 |
|
gosym | 訪問Go語言二進位制程式中的除錯資訊。對於視覺化除錯很有價值 | |
macho | 實現了對http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/ MachORuntime/Reference/reference.html 所定義的Mach-O物件檔案的訪問 |
|
pe | 實現了對PE( Microsoft Windows Portable Executable)檔案的訪問 | |
encoding | ascii85 | 實現了ascii85資料編碼,用於btoa工具和Adobe’s PostScript以及PDF文件格式 |
asn1 | 實現瞭解析DER編碼的ASN.1資料結構,其定義見ITU-T Rec X.690 | |
base32 | 實現了RFC 4648中所定義的base32編碼 | |
base64 | 實現了RFC 4648中所定義的base64編碼 | |
binary | 實現了在無符號整數值和位元組串之間的轉化,以及對固定尺寸值的讀和寫 | |
csv | 可讀和寫由逗號分割的數值( csv)檔案 | |
gob | 管理gob流——在編碼器(傳送者)和解碼器(接收者)之間進行二進位制值交換 | |
hex | 實現了十六進位制的編碼和解碼 | |
json | 實現了定義於RFC 4627中的JSON物件的編碼和解碼 | |
pem | 實現了PEM( Privacy Enhanced Mail)資料編碼 | |
xml | 實現了一個簡單的可理解XML名字空間的XML 1.0解析器 | |
go | ast | 聲明瞭用於展示Go包中的語法樹型別 |
build | 提供了構建Go包的工具 | |
doc | 從一個Go AST(抽象語法樹)中提取原始碼文件 | |
parser | 實現了一個Go原始檔解析器 | |
printer | 實現了對AST(抽象語法樹)的列印 | |
scanner | 實現了一個Go原始碼文字的掃描器 | |
token | 定義了代表Go程式語言中詞法標記以及基本操作標記( printing、 predicates)的常 量 |
|
hash | adler32 | 實現了Adler-32校驗和 |
crc32 | 實現了32位的迴圈冗餘校驗或CRC-32校驗和 | |
crc64 | 實現了64位的迴圈冗餘校驗或CRC-64校驗和 | |
fnv | 實現了Glenn Fowler、 Landon Curt Noll和Phong Vo所建立的FNV-1和FNV-1a未加 密雜湊函式 |
|
html | template | 它自動構建HTML輸出,並可防止程式碼注入 |
image | color | 實現了一個基本的顏色庫 |
draw | 提供一些做圖函式 | |
gif | 實現了一個GIF影象解碼器 | |
jpeg | 實現了一個JPEG影象解碼器和編碼器 | |
png | 實現了一個PNG影象解碼器和編碼器 | |
index | suffixarray | 通過構建記憶體索引實現的高速字串匹配查詢演算法 |
io | ioutil | 實現了一些實用的I/O函式 |
log | syslog | 提供了對系統日誌服務的簡單介面 |
math | big | 實現了多精度的算術運算(大數) |
cmplx | 為複數提供了基本的常量和數學函式 | |
rand | 實現了偽隨機數生成器 | |
mime | multipart | 實現了在RFC 2046中定義的MIME多個部分的解析 |
net | http | 提供了HTTP客戶端和伺服器的實現 |
實現了對郵件訊息的解析 | ||
rpc | 提供了對一個來自網路或其他I/O連線的物件可匯出的方法的訪問 | |
smtp | 實現了定義於RFC 5321中的簡單郵件傳輸協議( Simple Mail Transfer Protocol) | |
textproto | 實現了在HTTP、 NNTP和SMTP中基於文字的通用的請求/響應協議 | |
url | 解析URL並實現查詢轉義 | |
http/cgi | 實現了定義於RFC 3875中的CGI(通用閘道器介面) | |
http/fcgi | 實現了FastCGI協議 | |
http/httptest | 提供了一些HTTP測試應用 | |
http/httputil | 提供了一些HTTP應用函式,這些是對net/http包中的東西的補充,只不過相對 不太常用 |
|
http/pprof | 通過其HTTP伺服器執行時提供效能測試資料,該資料的格式正是pprof視覺化工 具需要的 |
|
rpc/jsonrpc | 為rpc包實現了一個JSON-RPC ClientCodec和ServerCodec | |
os | exec | 可執行外部命令 |
user | 通過名稱和id進行使用者賬戶檢查 | |
path | filepath | 實現了以與目標作業系統定義檔案路徑相相容的方式處理檔名路徑 |
regexp | syntax | 將正則表示式解析為語法樹 |
runtime | debug | 包含當程式在執行時除錯其自身的功能 |
pprof | 以pprof視覺化工具需要的格式寫執行時效能測試資料 | |
sync | atomic | 提供了低階的用於實現同步演算法的原子級的記憶體機制 |
testing | iotest | 提供一系列測試目的的型別,實現了Reader和Writer標準介面 |
quick | 實現了用於黑箱測試的實用函式 | |
script | 幫助測試使用通道的程式碼 | |
text | scanner | 為UTF-8文字提供了一個掃描器和分詞器 |
tabwriter | 實現了一個寫篩選器( tabwriter.Writer),它可將一個輸入的tab分割的列 翻譯為適當對齊的文字 |
|
template | 資料驅動的模板引擎,用於生成類似HTML的文字輸出格式 | |
template/parse | 為template構建解析樹 | |
unicode/utf16 | 實現了UTF-16序列的的編碼和解碼 | |
unicode/utf8 | 實現了支援以UTF-8編碼的文字的函式和常數 |
參考《Go語言程式設計》