Rumah > pembangunan bahagian belakang > Golang > kaedah mampatan golang

kaedah mampatan golang

WBOY
Lepaskan: 2023-05-16 17:51:38
asal
790 orang telah melayarinya

Golang ialah bahasa pengaturcaraan yang sangat popular yang menyokong banyak operasi, termasuk memampatkan data. Dalam artikel ini, kami akan meneroka beberapa cara Golang melaksanakan pemampatan.

Pakej standard Golang menyediakan dua perpustakaan mampatan iaitu "compress/flate" dan "compress/gzip". Seterusnya, kita akan meneroka penggunaan kedua-dua perpustakaan ini.

Pustaka pertama, "compress/flate", boleh digunakan untuk memampatkan data. Kaedah pemampatan yang disediakan oleh perpustakaan ini sesuai untuk data kecil dan boleh memampatkan sebarang jenis data. Berikut ialah contoh menggunakan "compress/flate":

package main

import (
    "compress/flate"
    "bytes"
    "fmt"
)

func compress(data []byte) []byte {
    var b bytes.Buffer
    w, _ := flate.NewWriter(&b, flate.BestCompression)
    w.Write(data)
    w.Close()
    return b.Bytes()
}

func main() {
    data := []byte("Hello, world!")
    compressed := compress(data)
    fmt.Printf("Compressed data: %v
", compressed)
}
Salin selepas log masuk

Dalam contoh di atas, kami telah menentukan fungsi yang dipanggil "compress" yang memampatkan data input ke dalam tatasusunan bait. Fungsi ini mencipta contoh pemampat baharu menggunakan fungsi "NewWriter" dalam "compress/flate", di mana "BestCompression" menentukan nisbah mampatan tertinggi. Kami kemudian menulis data kepada pemampat menggunakan fungsi "Tulis" dan menutupnya menggunakan fungsi "Tutup". Akhirnya, kami mengembalikan hasil termampat.

Kami juga mentakrifkan fungsi yang dipanggil "utama" yang menunjukkan cara menggunakan fungsi mampatan ini. Dalam fungsi "utama", kami menukar rentetan "Hello, world!" menjadi tatasusunan bait dan memampatkannya menggunakan fungsi "mampat". Akhirnya, kami mengeluarkan hasil termampat.

Seterusnya, kita akan meneroka perpustakaan kedua, "compress/gzip". "compress/gzip" digunakan untuk memampatkan atau menyahmampat data. Penggunaannya serupa dengan "compress/flate". Seterusnya ialah contoh menggunakan "compress/gzip":

package main

import (
    "bytes"
    "compress/gzip"
    "fmt"
)

func compress(data []byte) []byte {
    var b bytes.Buffer
    w := gzip.NewWriter(&b)
    w.Write(data)
    w.Close()
    return b.Bytes()
}

func main() {
    data := []byte("Hello, world!")
    compressed := compress(data)
    fmt.Printf("Compressed data: %v
", compressed)
}
Salin selepas log masuk

Dalam contoh di atas, kami mentakrifkan fungsi yang dipanggil "compress" yang memampatkan data input ke dalam tatasusunan bait. Fungsi ini mencipta contoh pemampat baharu menggunakan fungsi "NewWriter" daripada "compress/gzip". Kami kemudian menulis data kepada pemampat menggunakan fungsi "Tulis" dan menutupnya menggunakan fungsi "Tutup". Akhirnya, kami mengembalikan hasil termampat.

Kami juga mentakrifkan fungsi yang dipanggil "utama" yang menunjukkan cara menggunakan fungsi mampatan ini. Dalam fungsi "utama", kami menukar rentetan "Hello, world!" menjadi tatasusunan bait dan memampatkannya menggunakan fungsi "mampat". Akhirnya, kami mengeluarkan hasil termampat.

Ringkasan

Golang menggunakan pustaka "compress/flate" dan "compress/gzip" untuk memampatkan dan menyahmampat data. Perpustakaan ini menyediakan cara yang mudah dan cekap untuk memampatkan dan menyahmampat pelbagai jenis data. Apabila menggunakan perpustakaan ini untuk memampatkan data, pertimbangkan saiz data dan nisbah mampatan yang dikehendaki.

Atas ialah kandungan terperinci kaedah mampatan golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan