Maison >développement back-end >Golang >Créez un nouveau scanner à l'aide de la fonction bufio.NewScanner

Créez un nouveau scanner à l'aide de la fonction bufio.NewScanner

王林
王林original
2023-07-25 09:18:191256parcourir

Créez un nouveau scanner à l'aide de la fonction bufio.NewScanner

Dans le langage Go, le package bufio fournit des fonctions utilitaires pratiques, dont la fonction NewScanner. Cette fonction peut créer un nouvel objet Scanner à partir d'un objet io.Reader pour lire l'entrée ligne par ligne. Cet article explique comment utiliser la fonction bufio.NewScanner pour créer un nouvel objet Scanner et fournit un exemple de code pour illustrer son utilisation.

Tout d'abord, nous devons importer le package bufio ainsi que le package fmt, car nous utiliserons l'objet Scanner pour lire l'entrée ligne par ligne, et utiliser le package fmt pour afficher les résultats :

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

Ensuite, nous pouvons utilisez os.Stdin comme source d'entrée pour créer un nouvel objet Scanner pour lire l'entrée ligne par ligne via l'entrée standard :

scanner := bufio.NewScanner(os.Stdin)

Il convient de noter que l'objet Scanner est un type de pointeur, nous devons donc utiliser l'opérateur := pour créer un pointeur vers l'objet Scanner.

Maintenant, nous pouvons utiliser la méthode Scan de l'objet Scanner pour lire l'entrée une ligne à la fois, puis utiliser la méthode Text pour obtenir le contenu de l'entrée. La méthode Scan renverra false lors de la lecture jusqu'à la fin du fichier ou lors de la rencontre d'une erreur. Nous pouvons utiliser une boucle for pour continuer la lecture de l'entrée jusqu'à la fin du fichier. Voici un exemple de code simple :

for scanner.Scan() {
    line := scanner.Text()
    fmt.Println("输入内容:", line)
}

if err := scanner.Err(); err != nil {
    fmt.Fprintln(os.Stderr, "读取输入失败:", err)
    os.Exit(1)
}

Dans l'exemple de code ci-dessus, nous utilisons une boucle for pour lire en continu l'entrée après la lecture de chaque ligne d'entrée, nous utilisons la méthode Text pour obtenir le contenu d'entrée et transmettre fmt Le . La fonction Println sort sur la sortie standard.

Enfin, nous utilisons la fonction scanner.Err pour vérifier si une erreur a été rencontrée lors de la lecture de l'entrée. Si une erreur se produit, nous utilisons la fonction fmt.Fprintln pour afficher le message d'erreur dans le flux d'erreur standard et appelons la fonction os.Exit pour terminer le programme. C'est une bonne habitude de programmation qui peut nous aider à trouver et à résoudre des problèmes.

En résumé, en utilisant la fonction bufio.NewScanner, vous pouvez facilement créer un nouvel objet Scanner et l'utiliser pour lire l'entrée ligne par ligne. J'espère que cet article pourra aider les lecteurs à commencer rapidement à utiliser l'objet Scanner et à traiter la saisie plus efficacement.

Ce qui précède est le contenu de cet article. Un nouvel objet Scanner est créé via la fonction bufio.NewScanner, et un exemple de code correspondant est fourni pour illustrer son utilisation. J'espère que les lecteurs pourront en tirer de l'aide et utiliser cette fonction de manière flexible dans des applications pratiques.

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