Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Teknik pemprosesan aliran bait untuk fungsi Golang

Teknik pemprosesan aliran bait untuk fungsi Golang

WBOY
WBOYasal
2023-05-17 08:34:501626semak imbas

Golang ialah bahasa pengaturcaraan yang digunakan secara meluas yang cekap, boleh dipercayai dan mudah dipelajari. Apabila melakukan beberapa pengaturcaraan rangkaian dan pemprosesan data, pemprosesan aliran bait adalah keperluan yang sangat biasa. Oleh itu, artikel ini akan meneroka teknik bagaimana untuk melaksanakan pemprosesan aliran bait di Golang.

1. Konsep strim bait

Strim bait ialah kaedah penghantaran data yang biasa digunakan dalam komputer Ia menghantar data satu demi satu dalam unit bait. Dalam Golang, strim bait diwakili oleh hirisan jenis []bait.

Sebagai contoh, berikut ialah contoh mencipta strim bait dalam Golang:

var mesej []bait = []bait{0x48, 0x65, 0x6c, 0x6c, 0x6f}

Dalam contoh ini, kami menggunakan kepingan jenis []bait untuk mewakili mesej, yang mengandungi lima bait, iaitu 0x48, 0x65, 0x6c, 0x6c dan 0x6f. Dalam aplikasi praktikal, kami mungkin perlu melakukan beberapa pemprosesan pada bait ini, seperti menghurai dan bersiri.

2. Kaedah pemprosesan strim bait

  1. Membaca data daripada tatasusunan bait

Di Golang, anda boleh menggunakan pakej io Fungsi Baca membaca data daripada tatasusunan bait. Prototaip fungsi ini adalah seperti berikut:

func (T) Read(b []bait) (n int, err error)

Antaranya, T mewakili jenis yang melaksanakan io .Antara muka pembaca , b mewakili tatasusunan bait untuk dibaca, n mengembalikan bilangan bait yang dibaca dan ralat mewakili sama ada ralat telah berlaku.

Berikut ialah contoh yang menunjukkan cara membaca data daripada tatasusunan bait:

mesej := []bait{0x48, 0x65, 0x6c, 0x6c, 0x6f}
var buf [3 ]bait
jika n, err := bait.NewReader(message).Baca(buf[:]); err != nil {

fmt.Printf("read error: %v

", err)
} lain {

fmt.Printf("read %d bytes: %v

", n, buf[:n])
}

Dalam contoh ini, fungsi bytes.NewReader digunakan untuk menukar mesej kepada jenis antara muka io.Reader, dan kemudian daripada Baca 3 bait dan masukkannya ke dalam tatasusunan buf.

  1. Tulis data ke tatasusunan bait

Sama seperti membaca data daripada tatasusunan bait, di Golang, anda boleh menggunakan fungsi Tulis dalam pakej io untuk Menulis data ke dalam bait tatasusunan. Prototaip fungsi ini adalah seperti berikut:

func (T) Write(b []bait) (n int, err error)

Antaranya, T mewakili jenis yang melaksanakan io .Antara muka penulis , b mewakili tatasusunan bait yang akan ditulis, n mengembalikan bilangan bait yang ditulis dan ralat mewakili sama ada ralat telah berlaku.

Berikut ialah contoh yang menunjukkan cara menulis data kepada tatasusunan bait:

var mesej []bait
buf := bait.NewBuffer(mesej)
n , err := buf.Write([]byte("hello"))
if err != nil {

fmt.Printf("write error: %v

", err)
} else {

fmt.Printf("write %d bytes

", n)

fmt.Printf("message: % X

", buf.Bytes())
}

Dalam contoh ini, gunakan fungsi bytes.NewBuffer untuk menukar mesej kepada jenis antara muka io.Writer dan maka Rentetan hello ditulis ke dalamnya tatasusunan bersama-sama, anda boleh menggunakan fungsi Sertai dalam pakej bait Prototaip fungsi ini adalah seperti berikut:

    func Join(s [][]bait, sep []bait) []bait
  1. Antaranya, s mewakili tatasusunan bait berbilang yang akan disambungkan, dan sep mewakili pemisah yang digunakan untuk memisahkan setiap tatasusunan bait semasa mencantumkan

Berikut ialah contoh yang menunjukkan cara menggabungkan berbilang bait disambungkan bersama:

a := []bait{0x01, 0x02, 0x03}

b := []bait{0x04, 0x05, 0x06}

c := []bait { 0x07, 0x08, 0x09}

hasil := bait.Sertai([][]bait{a, b, c}, []bait{})

fmt.Printf("hasil: % X

", hasil)


Dalam contoh ini, gunakan bait.Sertai fungsi untuk menyambung a, b dan c bersama-sama dan mengeluarkan hasilnya ke konsol.


String dan Penukaran tatasusunan bait

Dalam aplikasi praktikal, ia selalunya melibatkan penukaran rentetan kepada tatasusunan bait atau menukar tatasusunan bait kepada rentetan Dalam Golang, anda boleh menggunakan fungsi []bait () dan string(). penukaran ini.

    Berikut ialah beberapa contoh yang menunjukkan cara menukar rentetan dan tatasusunan bait:
  1. str := "hello"
bait := []bait(str)

fmt.Printf("bait: % X

", bait)

str = rentetan(bait)

fmt.Printf("rentetan: % v

", str)

Dalam contoh ini, gunakan fungsi []bait() dan rentetan() untuk menukar rentetan kepada tatasusunan bait, dan kemudian tukar tatasusunan bait kepada output rentetan .

3. Ringkasan

Artikel ini memperkenalkan teknik memproses strim bait di Golang, termasuk membaca data daripada tatasusunan bait, menulis data kepada tatasusunan bait dan strim bait Kaedah seperti penyambungan dan penukaran bagi rentetan dan tatasusunan bait. Petua ini akan membantu pembaca menangani isu berkaitan aliran bait dengan lebih baik.

Atas ialah kandungan terperinci Teknik pemprosesan aliran bait untuk fungsi Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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