Golang語言情懷-第49期 Go 語言標準庫翻譯 compress/lzw

2021-02-19 Golang語言情懷

import "compress/lzw"

lzw包實現了Lempel-Ziv-Welch數據壓縮格式,這是一種T. A. Welch在「A Technique for High-Performance Data Compression」一文(Computer, 17(6) (June 1984), pp 8-19)提出的一種壓縮格式。

本包實現了用於GIF、TIFF、PDF文件的lzw壓縮格式,這是一種最長達到12位的變長碼,頭兩個非字面碼為clear和EOF碼。

type Order
func NewReader(r io.Reader, order Order, litWidth int) io.ReadCloser
func NewWriter(w io.Writer, order Order, litWidth int) io.WriteCloser

type Order 

Order指定一個lzw數據流的位順序。

const (
    // LSB表示最小權重位在前,用在GIF文件格式
    LSB Order = iota
    // MSB表示最大權重位在前,用在TIFF和PDF文件格式
    MSB
)

func NewReader

func NewReader(r io.Reader, order Order, litWidth int) io.ReadCloser

創建一個io.ReadCloser,它從r讀取並解壓數據。調用者有責任在結束讀取後調用返回值的Close方法;litWidth指定字面碼的位數,必須在[2,8]範圍內,一般為8。

func NewWriter

func NewWriter(w io.Writer, order Order, litWidth int) io.WriteCloser

創建一個io.WriteCloser,它將數據壓縮後寫入w。調用者有責任在結束寫入後調用返回值的Close方法;litWidth指定字面碼的位數,必須在[2,8]範圍內,一般為8。

參考資料:

Go語言中文文檔

http://www.golang.ltd/

Go語言官方文檔

https://golang.google.cn/

Golang語言情懷

ID:wwwGolangLtd

 www.Golang.Ltd

遊戲伺服器架構丨分布式技術丨大數據丨Go語言學習

相關焦點

  • Golang語言情懷-第46期 Go 語言標準庫翻譯 compress/bzip2
    Index ▾Package filesbit_reader.go bzip2.go huffman.go move_to_front.gofunc NewReaderfunc NewReader(r io.Reader) io.ReaderNewReader returns an io.Reader which decompresses bzip2
  • Go語言愛好者周刊:第 67 期 — Go1.16 相關功能基本完成了
    開源項目 1、go-echarts[11]Golang 可愛的圖表庫。想將條形圖,線形圖,餅圖或其他圖表放在一起嗎?該庫能實現。5、Go Time 第 151 期[30]向你的團隊介紹 Go。6、tempo[31]一個開放原始碼,易於使用的大規模分布式跟蹤後端。
  • Go語言愛好者周刊:第 77 期 — 這道題目測答對的人不多
    這裡記錄每周值得分享的 Go 語言相關內容,周日發布。本周刊開源(GitHub:polaris1119/golangweekly[1]),歡迎投稿,推薦或自薦文章/軟體/資源等,請提交 issue[2] 。
  • Go語言愛好者周刊:第 82 期 — 情人節快樂
    這裡記錄每周值得分享的 Go 語言相關內容,周日發布。本周刊開源(GitHub:polaris1119/golangweekly[1]),歡迎投稿,推薦或自薦文章/軟體/資源等,請提交 issue[2] 。
  • Go語言愛好者周刊:第 80 期 — 認真思考下為什麼?
    這裡記錄每周值得分享的 Go 語言相關內容,周日發布。本周刊開源(GitHub:polaris1119/golangweekly[1]),歡迎投稿,推薦或自薦文章/軟體/資源等,請提交 issue[2] 。
  • Go語言愛好者周刊:第 12 期
    優秀的英文文章,我們的 GCTT 組織會進行翻譯。題圖:來源 golangweekly.com刊首語 Go 有語言公認的一個很好的工具是 gofmt,它讓不同人的代碼寫出來風格差不多,這也極大的減少了團隊對代碼風格的要求。最近 Uber 公開的一份 ,受到極大的歡迎。
  • Go語言愛好者周刊:第 64 期 — goup 這個工具了解下
    這裡記錄每周值得分享的 Go 語言相關內容,周日發布。本周刊開源(GitHub:polaris1119/golangweekly[1]),歡迎投稿,推薦或自薦文章/軟體/資源等,請提交 issue[2] 。
  • Go語言(Golang)環境搭建詳解
    根據自己的作業系統選擇後,就可以下載開發工具包了,Go語言的官方下載地址是 https://golang.google.cn/dl/ 可以打開選擇版本下載。Linux下安裝我們以Ubuntu 64位為例進行演示,CentOS等其他Linux發行版大同小異。
  • Golang語言標準庫 sync 包的 Once 怎麼使用?
    01介紹在 Go
  • GO語言入門(第一個go程序)
    作為一門具有明確編碼規範的語言,它要求可以採用不同的編譯器如 gc 和 gccgo(第 2.1 節)進行編譯工作,這對語言本身擁有更好的編碼規範起到很大幫助。LALR 是 Go 語言的語法標準,你也可以在 src/cmd/internal/gc/go.y 中查看到,這種語法標準在編譯時不需要符號表來協助解析。
  • Golang 語言標準庫 bytes 包怎麼使用?
    01 介紹Golang 語言中內置了兩種字符類型05 總結本文介紹了 Golang 語言標準庫的 bytes 包的函數和兩個結構,Buffer 和 Reader,以及它們各自的方法。關注微信公眾號,加入讀者微信群發送關鍵字「資料」,免費獲取 Go 語言學習資料。推薦閱讀:再見 2020,你好 2021Golang 語言怎麼使用 gomail 庫發送郵件?
  • Go 語言 Web 框架 Echo 系列:定製篇2 — 自定義 Validator,進行輸入校驗
    然而,你可以很方便的集成第三方的數據校驗庫。跟 Binder 類似,Echo 提供了一個 Validator 接口,方便將第三方數據校驗庫集成進來。在 Awesome-Go 上可以找到第三方數據校驗庫:https://github.com/avelino/awesome-go#validation。本文我們使用最流行的 https://github.com/go-playground/validator 庫來講解。
  • 好書推薦|Go語言實戰(附PDF下載)
    本書目錄 第1章 關於Go語言的介紹 11.1 用Go解決現代編程難題 21.1.1 開發速度 21.1.2 並發 31.1.3Go語言的類型系統 51.1.4 內存管理 71.2 你好,Go71.3 小結 8
  • 「語言實踐」Go語言文檔自動化之go-swagger
    1 go-swagger依賴包獲取go-swagger中在github的倉庫下的依賴包如下,主要包含可以對語法進行校驗的govalidator,文檔化的標準specification的go-openapi,還有網絡處理的golang.org官網旗下的net和text。
  • Go語言愛好者周刊:第 23 期
    優秀的英文文章,我們的 GCTT 組織會進行翻譯。題圖:這是 reddit 上發布者從女友那得到的聖誕禮物,是不是很可愛?!刊首語 快過年了,又面臨搶票這個難題。4)優化了 http 代理,兼容一些舊的 http 客戶端發送 http 代理請求時,使用不標準的 URL 情況。3、做 github 最好用的 http client 庫,讓你體會到還沒有爽玩,活已經幹玩。
  • [GO語言基礎] 一.為什麼我要學習Golang以及GO語言入門普及
    庫程序裡有我想要的一切,總體實現較為完善。學習體驗也十分順暢,不得不說,Go 是一種經過精心設計的實用性語言。舉個例子:一旦你知悉了 Go 的語法,就能將其他語言中慣用法延續到 Go 中。只要你學會一些 Go,就可以相對輕易地推測 Go 語言的其他特性。憑藉一些來自其他語言的知識,我能夠閱讀並理解 Go 代碼,而不需要過多的搜索(Google)。
  • 解讀 Go 語言的 2019:Go 語言不行了嗎?
    圖 4:Google Trends 之 Go 語言熱度(2019 年 12 月)從我的觀察來看,Go 語言已經過了第二波快速推廣期,並且進入了穩定發展期,起碼在國內是這樣。已經在使用 Go 語言的技術團隊逐漸開始專注於埋頭寫代碼,而剛開始使用 Go 語言的團隊也沒有進行大肆的宣傳。Go 語言已經悄悄地變成了我們的家常便飯。
  • Go語言正確快速安裝開發工具
    我最近幹啥我最近都在學習Go語言相關的東西以及搗鼓論文。不是沒時間更新,其實就是自己懶。 後續應該會回復正常的節奏了。今天都幹了些啥今天下午都在安裝Go語言的東西,因為自己打算使用VsCode作為Go的開發主力。
  • Golang 語言的值驗證庫 Validator 怎麼使用?
    安裝:使用 go get:go get github.com/go-playground/validator/v10然後將 Validator 包導入到代碼中:import "github.com/go-playground/validator
  • 解讀Go語言的2020:變革前夜
    作者個人認為,這與 go mod 工具的轉正和推廣,以及「泛型」實現的排期確定是分不開的。 同時,據 StackOverflow(全球最大的編程社區和問答網站)在前不久發布的一份開發者生存報告顯示,Go 語言在 2020 年是繼 Python、Java、C++ 和 C 之後、排名第五的通用型、全平臺程式語言。