Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Membongkar Integer dengan Cekap daripada Penampan Byte dalam Go?

Bagaimana untuk Membongkar Integer dengan Cekap daripada Penampan Byte dalam Go?

Patricia Arquette
Lepaskan: 2024-12-01 10:40:14
asal
322 orang telah melayarinya

How to Efficiently Unpack Integers from a Byte Buffer in Go?

Cara Membongkar Integer daripada Penampan Bait Dengan Berkesan di Golang

Di Golang, apabila mengendalikan penimbal bait, selalunya perlu untuk mengekstrak pelbagai jenis integer dengan cekap. Artikel ini menggariskan dua pendekatan yang berkesan membongkar pelbagai jenis integer daripada penimbal bait sambil mematuhi keperluan khusus: mengekalkan offset eksplisit dan membaca terus daripada penimbal bait.

Pendekatan 1: Menggunakan .Next() untuk Langkau Bait Yang Tidak Diingini

Satu pendekatan melibatkan mencipta penimbal baharu setiap kali anda mahu membaca integer. Untuk mengelakkan overhed ini, anda boleh menggunakan kaedah .Next() untuk melangkau bait yang anda tidak mahu baca. Contohnya:

buf := make([]byte, 1024)
// ...

p := bytes.NewBuffer(buf)
// Read the first integer
binary.Read(p, binary.LittleEndian, &inodeCount)

// Skip unwanted bytes
p.Next(12)

// Read the next integer
binary.Read(p, binary.LittleEndian, &firstDataBlock)
// ...
Salin selepas log masuk

Pendekatan 2: Menggunakan Struktur Pengepala

Pendekatan alternatif ialah mencipta struktur pengepala yang sepadan dengan format penimbal bait. Ini membolehkan anda membaca keseluruhan pengepala secara terus menggunakan binary.Read(). Contohnya:

type Header struct {
    InodeCount      uint32
    BlockCount      uint32
    // ...
}

buf := make([]byte, 1024)
// ...

var header Header
err := binary.Read(bytes.NewBuffer(buf), binary.LittleEndian, &header)
if err != nil {
    // ...
}

fmt.Printf("%#v", header)
Salin selepas log masuk

Kesimpulan

Kedua-dua pendekatan membenarkan pembongkaran integer yang cekap daripada penimbal bait sambil memenuhi keperluan offset eksplisit dan membaca terus daripada penimbal . Pilihan antara mereka bergantung pada keperluan khusus dan ciri prestasi aplikasi anda.

Atas ialah kandungan terperinci Bagaimana untuk Membongkar Integer dengan Cekap daripada Penampan Byte dalam Go?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan