Maison > développement back-end > Golang > Comment lire efficacement plusieurs nombres dans une tranche Go à partir d'une entrée standard ?

Comment lire efficacement plusieurs nombres dans une tranche Go à partir d'une entrée standard ?

Linda Hamilton
Libérer: 2024-11-29 05:29:10
original
105 Les gens l'ont consulté

How to Efficiently Read Multiple Numbers into a Go Slice from Standard Input?

Lire plusieurs nombres dans Go Slice à partir de l'entrée standard

Dans Go, vous pouvez lire plusieurs nombres dans un tableau ou une tranche à l'aide de la fonction fmt.Fscan. Cependant, vous pouvez rencontrer une erreur lorsque vous essayez de numériser directement dans une tranche. En effet, la fonction fmt.Fscan ne prend pas automatiquement en charge l'analyse des tranches.

Pour résoudre ce problème, vous pouvez créer une fonction utilitaire qui regroupe les adresses de tous les éléments de tranche dans un tableau. Voici comment procéder :

func packAddrs(n []int) []interface{} {
    p := make([]interface{}, len(n))
    for i := range n {
        p[i] = &n[i]
    }
    return p
}
Copier après la connexion

Une fois que vous disposez de la fonction utilitaire, vous pouvez l'utiliser pour numériser une tranche entière dans un tableau :

numbers := make([]int, 2)
n, err := fmt.Fscan(os.Stdin, packAddrs(numbers)...)
fmt.Println(numbers, n, err)
Copier après la connexion

À des fins de test, vous peut utiliser fmt.Sscan pour scanner une chaîne dans la tranche :

numbers := make([]int, 5)
n, err := fmt.Sscan("1 3 5 7 9", packAddrs(numbers)...)
fmt.Println(numbers, n, err)
Copier après la connexion

Sortie (essayez-le en déplacement Aire de jeux) :

[1 3 5 7 9] 5 <nil>
Copier après la connexion

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:php.cn
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