Escape Gelung Input tanpa Semakan Bersyarat
Dalam Go, bufio.Scanner membenarkan anda membaca input daripada konsol baris demi baris. Walau bagaimanapun, fungsi Imbasan standard secara automatik maju ke token seterusnya, berpotensi menghasilkan gelung tak terhingga jika tiada keadaan putus yang jelas.
Dokumentasi menyatakan bahawa Imbasan mengembalikan palsu apabila ia mencapai penghujung input. Adakah ini bermakna anda boleh melangkau semakan bersyarat untuk keluar dari gelung?
Salah Tafsiran Dokumen
Malangnya, anda salah tafsir dokumentasi. Fungsi pisah lalai yang digunakan oleh Pengimbas ialah ScanLines, yang mengembalikan setiap baris teks sebagai token yang berasingan.
Gelagat ScanLines
ScanLines mempunyai dua gelagat utama:
Memecah Gelung
Oleh itu, baris kosong sahaja tidak menandakan tamat input. Gelung hanya akan pecah apabila anda mencapai keadaan akhir fail (EOF), biasanya dicetuskan oleh tindakan seperti menekan Ctrl-D.
Penyelesaian
Untuk melarikan diri gelung input tanpa klausa if, anda mesti sama ada:
Walau bagaimanapun, pada umumnya disyorkan untuk mengekalkan semakan bersyarat untuk kesederhanaan dan untuk mengelakkan kemungkinan kes tepi.
Atas ialah kandungan terperinci Bolehkah Anda Melarikan Diri dari Gelung Input `bufio.Scanner` Tanpa Semakan Bersyarat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!