Rumah > Artikel > pembangunan bahagian belakang > Mengapakah saya mendapat ralat \'Tidak boleh menetapkan []bait kepada z (rentetan jenis) dalam berbilang tugasan\' semasa membaca fail dalam Go?
Apabila cuba mengulangi fail dalam folder dan membaca kandungannya, anda mungkin menghadapi ralat: "tidak boleh memberikan []bait kepada z (jenis rentetan) dalam berbilang tugasan." Mari kita periksa kod dan sebab di sebalik ralat ini.
Dalam coretan kod yang disediakan, fungsi ReadFile() digunakan untuk membaca kandungan fail dan mengembalikan dua nilai: sekeping bait ([]bait ) yang mengandungi kandungan fail dan ralat, jika ada. Kod ini cuba memberikan kedua-dua nilai kepada pembolehubah yang sama z, iaitu daripada jenis rentetan. Walau bagaimanapun, tugasan ini tidak sah kerana anda tidak boleh memberikan nilai []bait kepada pembolehubah rentetan dalam berbilang tugasan.
Untuk menyelesaikan isu ini, anda perlu memisahkan tugasan dua nilai yang dikembalikan oleh ReadFile() :
<code class="go">buf, err := ioutil.ReadFile(z) if err != nil { log.Fatal(err) }</code>
Di sini, buf adalah daripada jenis []bait, dan ralat ialah ralat jenis, jadi tugasan itu sah. Setelah anda membaca kandungan fail, anda boleh menukarnya kepada rentetan jika perlu:
<code class="go">z = string(buf)</code>
Sebagai alternatif, anda boleh bekerja secara langsung dengan buf, yang mewakili bait mentah kandungan fail, tanpa menukarnya kepada seutas tali. Ini boleh meningkatkan prestasi dan mengelakkan kemungkinan isu penukaran.
Atas ialah kandungan terperinci Mengapakah saya mendapat ralat \'Tidak boleh menetapkan []bait kepada z (rentetan jenis) dalam berbilang tugasan\' semasa membaca fail dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!