Maison > développement back-end > Golang > Comment puis-je numériser efficacement plusieurs numéros dans un tableau à l'aide de fmt.Fscan de Go ?

Comment puis-je numériser efficacement plusieurs numéros dans un tableau à l'aide de fmt.Fscan de Go ?

Patricia Arquette
Libérer: 2024-11-26 07:31:10
original
683 Les gens l'ont consulté

How Can I Efficiently Scan Multiple Numbers into an Array Using Go's fmt.Fscan?

Analyse de nombres dans des tableaux à l'aide de fmt.Fscan dans Go

L'une des tâches couramment rencontrées en programmation consiste à lire plusieurs entrées numériques de l'utilisateur . Dans le langage Go, cela peut être réalisé en utilisant la fonction fmt.Fscan avec un tableau ou une tranche pour stocker les valeurs d'entrée.

Considérez l'extrait de code suivant, où l'utilisateur est invité à saisir deux nombres :

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

En fournissant les adresses mémoire des éléments individuels du tableau (numbers[0] et number[1]) comme arguments à fmt.Fscan, nous pouvons lire efficacement et stockez les nombres d'entrée dans le tableau.

Cependant, une approche plus concise est souhaitée, où nous pouvons directement numériser les nombres dans le tableau lui-même. Pour y parvenir, nous pouvons créer une fonction utilitaire qui crée une tranche de pointeurs vers les éléments de notre tableau :

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

En passant le résultat de packAddrs à fmt.Fscan, nous pouvons analyser efficacement les nombres d'entrée dans le tableau :

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

Cette approche offre un moyen plus simple et plus efficace de lire plusieurs nombres dans un tableau à l'aide de fmt.Fscan. C'est particulièrement utile lorsque le nombre de valeurs d'entrée n'est pas connu à l'avance.

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