Rumah >pembangunan bahagian belakang >Golang >Apakah Cara Paling Cekap untuk Menukar Rentetan kepada Tatasusunan Byte dalam Go?

Apakah Cara Paling Cekap untuk Menukar Rentetan kepada Tatasusunan Byte dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-12-24 00:20:11763semak imbas

What's the Most Efficient Way to Convert Strings to Byte Arrays in Go?

Cara Menukar Rentetan kepada Tatasusunan Bait dengan Cekap dalam Go

Apabila bekerja dengan data binari dalam Go, selalunya perlu menukar rentetan kepada tatasusunan bait. Terdapat beberapa pendekatan untuk mencapai matlamat ini, masing-masing mempunyai kelebihan dan kekurangannya sendiri.

Tidak Selamat tetapi Cepat: Menggunakan Penghirisan Bait

Coretan yang disediakan dalam soalan menggunakan untuk gelung untuk menetapkan secara manual setiap bait rentetan kepada tatasusunan bait:

for k, v := range []byte(str) {
  arr[k] = byte(v)
}

Sementara kaedah ini cekap dari segi kelajuan, ia juga tidak selamat kerana ia tidak melakukan sebarang semakan had dan boleh menyebabkan ralat masa jalan jika tatasusunan destinasi terlalu kecil.

Selamat dan Mudah: Menggunakan Huruf Byte

Pendekatan yang lebih ringkas dan selamat ialah menggunakan sintaks literal bait:

[]byte("Here is a string....")

Ini kaedah secara langsung membina tatasusunan bait daripada rentetan yang disediakan, tanpa memerlukan penukaran manual atau gelung.

Alternatif Lain

  • salinan: Fungsi salin boleh digunakan untuk memindahkan data antara dua tatasusunan bait atau antara rentetan dan tatasusunan bait, dengan syarat tatasusunan destinasi mempunyai mencukupi kapasiti.
  • rentetan.NewReader: Untuk situasi di mana rentetan itu panjang dan disimpan sebagai io.Reader, fungsi strings.NewReader boleh digunakan untuk mencipta tatasusunan bait daripada perwakilan rentetan sebagai aliran bait.

Atas ialah kandungan terperinci Apakah Cara Paling Cekap untuk Menukar Rentetan 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