Maison > développement back-end > Golang > Comment numériser dans GoLang

Comment numériser dans GoLang

Susan Sarandon
Libérer: 2025-01-05 14:51:44
original
492 Les gens l'ont consulté

How to Scan in GoLang

Dans Go (golang), le package fmt fournit plusieurs fonctions pour analyser les entrées de la console ou d'autres sources d'entrée.

Pour moi, ceux-ci ont toujours été utiles lors des tests et dans bien d'autres domaines. Et jusqu'à présent, je travaille habituellement avec 4 fonctions lors de la numérisation.

Explorons quelques-uns d'entre eux et voyons comment, pourquoi et quand l'utiliser.


1. fmt.Scan

  • Objectif : Lit les entrées séparées par des espaces à partir de l'entrée standard (console).
  • Arrête la lecture : S'arrête sur la première nouvelle ligne ou espace.
  • Variables multiples : Peut lire plusieurs variables en un seul appel.
  • Retours : Nombre d'éléments analysés avec succès et erreur le cas échéant.

Exemple :

package main

import (
    "fmt"
)

func main() {
    var name string
    var age int
    fmt.Print("Enter your name and age: ")
    fmt.Scan(&name, &age) // Reading input separated by space
    fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}
Copier après la connexion
Copier après la connexion

Exemple de saisie :

Alice 25

Sortie :

Hello Alice, you are 25 years old.
Copier après la connexion
Copier après la connexion
Copier après la connexion

2. fmt.Scanln

  • Objectif : Lit l'entrée jusqu'à ce qu'une nouvelle ligne (n) soit rencontrée.
  • Arrête la lecture : S'arrête sur une nouvelle ligne au lieu d'un espace.
  • Variables multiples : Peut lire plusieurs variables mais s'arrête si elle atteint la nouvelle ligne en premier.
  • Retours : Nombre d'éléments analysés avec succès et erreur le cas échéant.

Exemple :

package main

import (
    "fmt"
)

func main() {
    var name string
    var age int
    fmt.Print("Enter your name and age: ")
    fmt.Scanln(&name, &age) // Reads until newline is encountered
    fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}
Copier après la connexion

Exemple de saisie :

Alice 25

Sortie :

Hello Alice, you are 25 years old.
Copier après la connexion
Copier après la connexion
Copier après la connexion

3. fmt.Scanf

  • Objectif : Lit les entrées formatées à l'aide de spécificateurs de format (comme %s, %d, %f).
  • Arrête la lecture : S'arrête en fonction du format spécifié.
  • Variables multiples : Peut lire plusieurs variables avec un contrôle précis à l'aide de spécificateurs de format.
  • Retours : Nombre d'éléments analysés avec succès et erreur le cas échéant.

Exemple :

package main

import (
    "fmt"
)

func main() {
    var name string
    var age int
    fmt.Print("Enter your name and age (formatted): ")
    fmt.Scanf("%s %d", &name, &age) // Reads formatted input
    fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}
Copier après la connexion

Exemple de saisie :

Alice 25

Sortie :

Hello Alice, you are 25 years old.
Copier après la connexion
Copier après la connexion
Copier après la connexion

4. bufio.NewReader (pour la gestion avancée des entrées)

  • Objectif : Fournit des capacités de lecture d'entrée plus avancées par rapport à fmt.
  • Arrête la lecture : Permet de lire une ligne entière, espaces compris.
  • Variables multiples : Lit l'entrée sous la forme d'une seule chaîne et peut ensuite être divisée davantage si nécessaire.
  • Renvoie : La ligne d'entrée complète sous forme de chaîne.

Exemple :

package main

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

func main() {
    reader := bufio.NewReader(os.Stdin)
    fmt.Print("Enter your name and age: ")
    input, _ := reader.ReadString('\n') // Reads entire line including spaces
    input = strings.TrimSpace(input)    // Trim newline and spaces
    fmt.Printf("You entered: %s\n", input)
}
Copier après la connexion

Exemple de saisie :

Alice 25

Sortie :

package main

import (
    "fmt"
)

func main() {
    var name string
    var age int
    fmt.Print("Enter your name and age: ")
    fmt.Scan(&name, &age) // Reading input separated by space
    fmt.Printf("Hello %s, you are %d years old.\n", name, age)
}
Copier après la connexion
Copier après la connexion

? Tableau récapitulatif :

Function Purpose Stops Reading At Supports Formatting? Multiple Variables? Use Case
fmt.Scan Basic scanning Whitespace Simple input without newline
fmt.Scanln Scans until newline Newline (n) Input until newline
fmt.Scanf Formatted input scanning Controlled by format Precise formatted input
bufio.NewReader Advanced input handling Customizable Large input with spaces
Fonction Objectif Arrête de lire à Prend en charge le formatage ? Variables multiples ? Cas d'utilisation
ête> fmt.Scan Analyse de base Espaces ❌ ✅ Saisie simple sans nouvelle ligne fmt.Scanln Analyse jusqu'à la nouvelle ligne Nouvelle ligne (n) ❌ ✅ Saisie jusqu'à la nouvelle ligne fmt.Scanf Analyse des entrées formatées Contrôlé par format ✅ ✅ Saisie formatée avec précision bufio.NewReader Gestion avancée des entrées Personnalisable ✅ ❌ Grande entrée avec des espaces

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!

source:dev.to
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal