Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyiram Input Standard (Stdin) dalam Go Apabila Berurusan dengan Input Tidak Sah?
Membilas Input Standard (Stdin) dalam Go
In Go, apabila menggunakan fmt.Scanf() untuk membaca input pengguna, adalah penting untuk mengendalikan input tidak sah untuk mengelakkan isu gelung. Satu cabaran biasa ialah ketidakupayaan untuk mengosongkan penimbal input selepas entri tidak sah, menyebabkan input seterusnya dihuraikan secara tidak betul. Ini boleh diselesaikan dengan membuang Stdin.
fmt.Scanln()
Satu kaedah untuk menangani isu ini ialah menggunakan fmt.Scanln(), yang berbunyi lengkap baris daripada input. Ia menggunakan baki input selepas penentu format yang ditentukan, menghapuskan keperluan untuk gelung eksplisit.
<code class="go">func someFunc() { fmt.Printf("Please enter an integer: ") // Read in an integer var i int _, err := fmt.Scanln(&i) if err != nil { fmt.Printf("Error: %s", err.Error()) // If int read fails, read as string and forget var discard string fmt.Scanln(&discard) return } fmt.Printf("Input contained %d", i) }</code>
Menggunakan io.Scanf()
Sebagai alternatif, io.Scanf () boleh digunakan untuk membaca format tertentu daripada input, walaupun ia tidak lengkap. Jika input tidak sepadan dengan format, aksara yang tinggal ditinggalkan dalam penimbal input. Untuk mengosongkan penimbal selepas ralat sedemikian, gunakan:
<code class="go">reader.Reset(reader.Bytes())</code>
di mana pembaca ialah objek io.Reader.
Pertimbangan Lain
Jika tiada fungsi terbina dalam yang sesuai, pertimbangkan untuk menggunakan fungsi tersuai yang membaca dan membuang input secara berterusan sehingga baris baharu dicapai. Pendekatan ini memastikan bahawa semua baki input dikosongkan daripada penimbal.
Ingat, pengendalian input tidak sah yang betul adalah penting untuk interaksi pengguna yang mantap.
Atas ialah kandungan terperinci Bagaimana untuk Menyiram Input Standard (Stdin) dalam Go Apabila Berurusan dengan Input Tidak Sah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!