Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menukar Antara Muka Go Arbitrary kepada Array Byte?

Bagaimana untuk Menukar Antara Muka Go Arbitrary kepada Array Byte?

Barbara Streisand
Barbara Streisandasal
2024-11-09 17:46:02863semak imbas

How to Convert an Arbitrary Go Interface to a Byte Array?

Cara Menukar Antara Muka Arbitrary Go kepada Array Byte

Latar Belakang

Mencipta fungsi cincang yang menerima sebarang jenis data memerlukan keupayaan untuk menukar data kepada tatasusunan bait. Walau bagaimanapun, pakej binari nampaknya menuntut pengetahuan tentang jenis data dan tertib bait, menjadikan penukaran mudah mencabar.

Penyelesaian Menggunakan Gob

Ralat adalah dalam pendekatan awal. Pakej gob mampu mengendalikan penukaran ini dengan berkesan.

Pelaksanaan

Kod berikut menunjukkan cara menukar antara muka arbitrari{} kepada tatasusunan bait:

package bloom

import (
    "encoding/gob"
    "bytes"
)

// GetBytes converts an interface{} to a byte array.
func GetBytes(key interface{}) ([]byte, error) {
    var buf bytes.Buffer
    enc := gob.NewEncoder(&buf)
    err := enc.Encode(key)
    if err != nil {
        return nil, err
    }
    return buf.Bytes(), nil
}

Fungsi ini menggunakan pakej gob untuk mengekod antara muka input ke dalam tatasusunan bait. Ia kemudian mengembalikan tatasusunan bait yang terhasil bersama-sama dengan sebarang ralat yang dihadapi semasa pengekodan.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Antara Muka Go Arbitrary kepada Array Byte?. 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