Mengapa Saya Tidak Boleh Menetapkan []bait kepada String dalam Go?

DDD
Lepaskan: 2024-10-27 01:57:30
asal
176 orang telah melayarinya

Why Can't I Assign []byte to a String in Go?

Memahami Ralat Tugasan Byte: Tidak Dapat Menetapkan []bait ke Rentetan

Dalam percubaan anda untuk membaca fail dalam folder, anda mengalami ralat "tidak boleh memberikan []bait kepada z (jenis rentetan) dalam berbilang tugasan" apabila cuba membaca kandungan fail. Mari kita selidiki sebab di sebalik ralat ini.

Memahami Tugasan Berbilang

Apabila berbilang pembolehubah diberikan nilai dalam satu baris, seperti dalam kod anda:

<code class="go">z, err := ioutil.ReadFile(z)</code>
Salin selepas log masuk

Setiap pembolehubah di sebelah kiri pengendali tugasan menerima nilai sepadan yang dikembalikan oleh fungsi. Dalam kes ini, fungsi ioutil.ReadFile mengembalikan dua nilai: []bait (data binari) dan ralat.

Menetapkan Bait kepada Rentetan

Bahagian yang bermasalah sedang mencuba untuk menetapkan []bait (data binari) yang dikembalikan daripada ioutil.ReadFile kepada pembolehubah z, yang diisytiharkan sebagai rentetan. Di sinilah ralat timbul kerana z menjangkakan nilai rentetan, bukan data binari.

Penyelesaian

Untuk menyelesaikan ralat ini, anda mempunyai dua pilihan:

  1. Tukar []bait kepada rentetan menggunakan fungsi string():
<code class="go">buf, err := ioutil.ReadFile(z)
if err != nil {
    log.Fatal(err)
}
z = string(buf)</code>
Salin selepas log masuk
  1. Isytihar z sebagai []bait bukannya rentetan:
<code class="go">var z []byte
z, err := ioutil.ReadFile(z)</code>
Salin selepas log masuk

Bekerja dengan Data Perduaan

Walaupun menukar data binari kepada rentetan adalah mungkin, selalunya lebih baik untuk bekerja secara langsung dengan data binari itu sendiri. Ini mengelakkan penukaran yang tidak perlu dan mengekalkan format asal data.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menetapkan []bait kepada String dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!