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) // ...
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)
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!