Maison  >  Article  >  développement back-end  >  Comment fermer l'entrée dans Golang

Comment fermer l'entrée dans Golang

PHPz
PHPzoriginal
2023-04-05 09:11:17873parcourir

Golang est un langage de programmation populaire qui fournit de nombreuses fonctions intégrées utiles pour gérer les entrées et les sorties. Dans certains cas, nous souhaiterons peut-être désactiver la saisie de l'utilisateur dans notre programme. Cet article expliquera comment désactiver la saisie dans Golang.

Pourquoi devrions-nous désactiver l'entrée ?

Dans certaines applications, nous devons garantir l'exactitude et la sécurité de la saisie. Par exemple, saisissez des informations confidentielles ou saisissez des données qui affectent la logique du programme. Dans ces cas, nous voulons pouvoir limiter les sources d'entrée du programme et garantir l'exactitude de l'entrée.

Comment fermer la saisie dans Golang ?

Dans Golang, il existe plusieurs façons de fermer la saisie. Deux de ces méthodes seront présentées ci-dessous.

1. Utilisez la fonction os.Stdin.Close()

Dans Golang, os.Stdin est une variable intégrée très utile qui représente le flux d'entrée standard du programme. La fermeture de cette variable empêchera le programme de lire les données du flux d'entrée standard.

Utilisez la fonction os.Stdin.Close() pour fermer l'entrée standard du programme.

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. Utilisez le drapeau io.EOF dans la structure bufio.Reader

La structure bufio.Reader dans Golang fournit également une méthode pour fermer la saisie. Plus précisément, nous pouvons vérifier si la saisie est terminée lors de la lecture de l'entrée. Si la saisie est terminée, nous pouvons fermer l'entrée et interdire toute nouvelle saisie de données.

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
}

Dans le code ci-dessus, nous utilisons la fonction bufio.NewReader() pour créer un objet bufio.Reader et utilisons sa méthode ReadString() pour lire l'entrée.

Après chaque lecture, nous vérifions si l'erreur est io.EOF. Si tel est le cas, cela signifie que la saisie est terminée et que nous pouvons fermer la saisie.

Résumé

Ci-dessus sont deux façons de fermer l'entrée Golang. Dans certains cas, nous devrons peut-être désactiver la saisie de l'utilisateur. L'utilisation de ces méthodes peut nous aider à garantir l'exactitude et la sécurité du programme.

Bien sûr, désactiver la saisie n'est pas toujours nécessaire. La situation spécifique doit être déterminée en fonction du scénario d'application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn