Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menutup input di Golang

Bagaimana untuk menutup input di Golang

PHPz
PHPzasal
2023-04-05 09:11:17878semak imbas

Golang ialah bahasa pengaturcaraan popular yang menyediakan banyak fungsi terbina dalam yang berguna apabila berurusan dengan input dan output. Dalam sesetengah kes, kami mungkin mahu melumpuhkan input pengguna ke dalam program kami. Artikel ini akan menerangkan cara untuk mematikan input dalam Golang.

Mengapa anda mahu mematikan input?

Dalam sesetengah aplikasi, kami perlu memastikan ketepatan dan keselamatan input. Contohnya, masukkan beberapa maklumat sulit atau masukkan data yang mempengaruhi logik program. Dalam kes ini, kami mahu dapat mengehadkan sumber input program dan memastikan ketepatan input.

Bagaimana untuk menutup input di Golang?

Di Golang, terdapat beberapa cara untuk menutup input. Dua daripada kaedah ini akan diperkenalkan di bawah.

1. Gunakan fungsi os.Stdin.Close()

Di Golang, os.Stdin ialah pembolehubah terbina dalam yang sangat berguna yang mewakili aliran input standard program. Menutup pembolehubah ini akan menghalang program daripada membaca data daripada aliran input standard.

Gunakan fungsi os.Stdin.Close() untuk menutup input standard program.

package main

import (
    "fmt"
    "os"
)

func main() {
    fmt.Println("input your name:")
    var name string
    _, err := fmt.Scanln(&name)
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println("Hello", name)

    os.Stdin.Close()//关闭标准输入
    fmt.Scanln()//此时将不能再输入
}

2. Gunakan bendera io.EOF dalam bufio.Struktur pembaca

Struktur bufio.Reader di Golang juga menyediakan kaedah untuk mematikan input. Secara khusus, kita boleh menyemak sama ada input telah tamat apabila membaca input Jika input telah tamat, kita boleh menutup input dan melarang input data selanjutnya.

package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    fmt.Println("input your name:")
    var name string
    reader := bufio.NewReader(os.Stdin)
    for {
        line, err := reader.ReadString('\n')
        if line == "\n" {
            fmt.Println("Name:", name)
            break
        }
        if err == nil {
            name += line
        } else if err.Error() == "EOF" {
            fmt.Println("Name:", name)
            break
        }
    }
    reader = nil
}

Dalam kod di atas, kami menggunakan fungsi bufio.NewReader() untuk mencipta objek bufio.Reader dan menggunakan kaedah ReadString() untuk membaca input.

Selepas setiap membaca, kami menyemak sama ada ralat adalah io.EOF. Jika ya, ini bermakna input telah tamat dan kita boleh menutup input.

Ringkasan

Di atas ialah dua cara untuk menutup input Golang. Dalam sesetengah kes, kami mungkin perlu melumpuhkan input pengguna. Menggunakan kaedah ini boleh membantu kami memastikan ketepatan dan keselamatan program.

Sudah tentu, mematikan input tidak selalunya diperlukan. Situasi khusus perlu ditentukan mengikut senario aplikasi.

Atas ialah kandungan terperinci Bagaimana untuk menutup input di Golang. 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