Maison > développement back-end > Golang > Comment puis-je lire des valeurs entières dans Go sans boucle For ?

Comment puis-je lire des valeurs entières dans Go sans boucle For ?

Barbara Streisand
Libérer: 2024-10-30 05:30:28
original
956 Les gens l'ont consulté

How Can I Read Integer Values in Go Without a For Loop?

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>
Copier après la connexion

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>
Copier après la connexion

Entrée et sortie d'échantillons :

Enter the number of integers
3
Enter the integers
10 20 30
[10 20 30]
Copier après la connexion

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!

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