Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyiram Input Standard (Stdin) dalam Go Apabila Berurusan dengan Input Tidak Sah?

Bagaimana untuk Menyiram Input Standard (Stdin) dalam Go Apabila Berurusan dengan Input Tidak Sah?

Linda Hamilton
Linda Hamiltonasal
2024-10-29 02:32:30326semak imbas

How to Flush Standard Input (Stdin) in Go When Dealing with Invalid Inputs?

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!

Kenyataan:
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