Catfish3在Cpluscplus网站上写了一篇文章,如何用C++来实现Lempel-Ziv-Welch压缩算法。于是照猫画虎,用Go实现了一个简易的版本,只是确保了功能而且,没有考虑如何变得更好更优雅。

其实Go的runtime包含了一个更加成熟的LZW算法包"compress/lzw",采用了变长Code Bits。跟"compress/lzw"相比,下面的实现采用了16位定长的Code Bits,所以有可能压缩结果比源文件体积更大-_-‘。