Rumah >pembangunan bahagian belakang >Golang >Mengapa Saya Tidak Boleh Menetapkan []bait kepada String dalam 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>
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:
<code class="go">buf, err := ioutil.ReadFile(z) if err != nil { log.Fatal(err) } z = string(buf)</code>
<code class="go">var z []byte z, err := ioutil.ReadFile(z)</code>
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!