Maison > développement back-end > Golang > Comment numériser efficacement plusieurs numéros dans une tranche en Go ?

Comment numériser efficacement plusieurs numéros dans une tranche en Go ?

Barbara Streisand
Libérer: 2024-12-17 09:37:25
original
1014 Les gens l'ont consulté

How to Efficiently Scan Multiple Numbers into a Slice in Go?

Analyse de nombres en tranches dans Go

Lors de la lecture de plusieurs nombres à partir de l'entrée standard dans Go, vous pouvez attribuer des valeurs à des variables individuelles :

numbers := make([]int, 2)
fmt.Fscan(os.Stdin, &numbers[0], &numbers[1])
Copier après la connexion

Cependant, vous souhaiterez peut-être simplifier le processus et lire directement dans une tranche. Le package fmt ne prend pas en charge l'analyse en tranches, mais la fonction utilitaire suivante peut aider :

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

Cette fonction crée une tranche d'adresses pour chaque élément de la tranche d'entrée. Avec cette fonction, vous pouvez numériser une tranche comme celle-ci :

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

Tester cela avec fmt.Sscan() :

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 :

[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!

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