Strategi Penukaran: []bait kepada int dalam Go
Menukar data daripada kepingan bait ([]bait) kepada integer (int ) timbul dalam pelbagai senario, seperti yang ditunjukkan dalam keperluan untuk menghantar nilai berangka melalui TCP. Pertanyaan ini meneroka kaedah penukaran yang tersedia dalam Go.
Menukar []bait kepada int menggunakan pengekodan/perduaan
Pakej pengekodan/perduaan menyediakan mekanisme yang mudah untuk menukar antara jujukan bait dan jenis data asas. Ia menyokong penukaran untuk jenis 16, 32 dan 64-bit.
Antara muka ByteOrder, yang mentakrifkan endian susunan bait (besar atau kecil-endian), memainkan peranan penting dalam penukaran ini. Coretan kod berikut menunjukkan cara menukar []bait kepada uint64 menggunakan fungsi ByteOrder.Uint64(), dengan mengandaikan susunan bait big-endian:
package main import "fmt" import "encoding/binary" func main() { var mySlice = []byte{244, 244, 244, 244, 244, 244, 244, 244} // 8-byte value represented as []byte data := binary.BigEndian.Uint64(mySlice) fmt.Println(data) // Prints: 18446744073709551615 }
Dalam contoh ini, contoh mySlice []bait mewakili integer tidak bertanda 8 bait. Fungsi binari.BigEndian.Uint64() menukar jujukan bait ini kepada uint64 menggunakan susunan bait big-endian (yang menentukan bahawa bait paling ketara muncul dahulu dalam jujukan bait).
Nota: Fungsi penukaran bergantung pada jenis data yang dikehendaki. Contohnya, binary.BigEndian.Uint16() akan digunakan untuk menukar kepada integer tidak bertanda 16-bit.
Atas ialah kandungan terperinci Bagaimana untuk Menukar []bait kepada int dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!