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

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