Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana dengan Cekap Menukar Rentetan UTF-8 kepada Tatasusunan Byte dalam Go?

Bagaimana dengan Cekap Menukar Rentetan UTF-8 kepada Tatasusunan Byte dalam Go?

DDD
DDDasal
2024-10-29 07:47:30671semak imbas

How to Efficiently Convert UTF-8 Strings to Byte Arrays in Go?

Menukar Rentetan UTF-8 kepada Tatasusunan Byte

Menyahmarshalling JSON memerlukan input kepingan bait, manakala rentetan disimpan sebagai UTF-8 dalam Go . Artikel ini meneroka penukaran rentetan UTF-8 yang cekap kepada tatasusunan bait.

Penukaran Terus

Go membenarkan penukaran rentetan kepada kepingan bait, mencipta salinan bait rentetan :

<code class="go">s := "some text"
b := []byte(s)</code>

Walau bagaimanapun, untuk rentetan yang besar, pendekatan ini tidak cekap kerana penyalinan.

Menggunakan io.Reader

Alternatif yang cekap sedang menggunakan strings.NewReader() untuk mencipta io.Reader yang membaca daripada rentetan tanpa menyalin:

<code class="go">s := `{ "somekey": "somevalue" }`

var result interface{}
err := json.NewDecoder(strings.NewReader(s)).Decode(&result)</code>

Pendekatan ini mengelakkan penyalinan rentetan.

Teks JSON Kecil

Untuk teks JSON yang kecil, penukaran langsung kekal sebagai pilihan pantas:

<code class="go">s := `{ "somekey": "somevalue" }`

var result interface{}
err := json.Unmarshal([]byte(s), &result)</code>

Nota: Apabila membaca JSON daripada io.Reader (cth., fail atau rangkaian), hantar io.Reader terus ke json.NewDecoder() tanpa bacaan rentetan perantaraan.

Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Rentetan UTF-8 kepada Tatasusunan Byte dalam Go?. 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