Maison  >  Article  >  développement back-end  >  Comment éviter les boucles pour une saisie entière efficace dans Golang ?

Comment éviter les boucles pour une saisie entière efficace dans Golang ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-30 05:26:02979parcourir

How to Avoid Loops for Efficient Integer Input in Golang?

Saisie d'entiers efficace dans Golang : évitez les boucles explicites

Dans l'intention de rassembler efficacement plusieurs entiers séparés par des espaces et de les stocker dans une tranche, commençons par explorez une solution qui contourne les itérateurs de boucle explicites.

Sans utiliser les boucles for traditionnelles, nous pouvons utiliser une approche récursive pour analyser l'entrée de manière itérative. Voici un aperçu de la stratégie :

<br>func ReadN(all []int, i, n int) <br>

  • Cette fonction parcourt de manière récursive la tranche d'entrée, en commençant à partir d'un index donné i et en itérant jusqu'à ce que n valeurs soient obtenues.

<br> if n == 0 {</p>
<pre class="brush:php;toolbar:false">    return
}

  • Le cas de base de récursivité vérifie si nous avons atteint la fin des valeurs souhaitées. Si c'est le cas, nous revenons.

<br> if m, err := Scan(&all[i]); m != 1 {<br>

  • Cette ligne scanne une seule valeur entière dans l'élément slice à l'index i.

 <br>ReadN(all, i 1, n-1)<br>

  • Après avoir scanné une seule valeur, nous appelons récursivement ReadN pour obtenir la valeur suivante. Ce processus se répète jusqu'à ce que toutes les valeurs soient saisies.

Grâce à la fonction fmt.Scan, qui effectue l'analyse des entrées, cette approche offre une analyse efficace des entrées entières.

Pour un traitement encore plus rapide, nous pouvons remplacer func Scan(a *int) par une fonction optimisée qui exploite diverses astuces pour une lecture accélérée des entrées. Cette version améliorée optimise encore la vitesse de traitement des entrées.

En employant ces techniques efficaces, nous pouvons lire rapidement plusieurs entiers de l'utilisateur et les stocker dans une tranche entière, accélérant ainsi le flux de travail de traitement des entrées dans Golang.

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:
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