Lire efficacement des valeurs entières dans Golang
Pour lire un ensemble de valeurs entières à partir d'une entrée standard et les stocker dans une tranche sans utiliser de méthode conventionnelle for loop, une approche optimisée peut être utilisée.
Solution utilisant une fonction récursive
Cette approche utilise une fonction récursive, ReadN, qui prend une tranche entière, un index de départ , et le nombre d'entiers à lire. Grâce à des appels récursifs successifs, il attribue efficacement des entiers à la tranche.
Exemple de code :
<code class="go">package main import "fmt" func main() { fmt.Println(`Enter the number of integers`) var n int if m, err := Scan(&n); m != 1 { panic(err) } fmt.Println(`Enter the integers`) all := make([]int, n) ReadN(all, 0, n) fmt.Println(all) } func ReadN(all []int, i, n int) { if n == 0 { return } if m, err := Scan(&all[i]); m != 1 { panic(err) } ReadN(all, i+1, n-1) } func Scan(a *int) (int, error) { return fmt.Scan(a) }</code>
Analyse plus rapide des entrées
Pour une analyse d'entrée encore plus rapide, remplacez la fonction d'analyse personnalisée par une alternative plus efficace :
<code class="go">func Scan(a *int) (int, error) { return fmt.Scanf("%d\n", a) }</code>
Entrée et sortie d'échantillons :
Enter the number of integers 3 Enter the integers 10 20 30 [10 20 30]
Ceci optimisé La solution fournit un moyen efficace de lire des entiers à partir d'une entrée standard, sans la surcharge d'une boucle for.
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!