Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich in Go ganzzahlige Werte ohne For-Schleife lesen?

Wie kann ich in Go ganzzahlige Werte ohne For-Schleife lesen?

Barbara Streisand
Barbara StreisandOriginal
2024-10-30 05:30:28879Durchsuche

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

Effizientes Lesen von Ganzzahlwerten in Golang

Um einen Satz ganzzahliger Werte aus der Standardeingabe zu lesen und sie in einem Slice zu speichern, ohne eine herkömmliche Methode zu verwenden for-Schleife kann ein optimierter Ansatz verwendet werden.

Lösung mit rekursiver Funktion

Dieser Ansatz verwendet eine rekursive Funktion, ReadN, die ein ganzzahliges Slice, einen Startindex, verwendet und die Anzahl der zu lesenden Ganzzahlen. Durch aufeinanderfolgende rekursive Aufrufe werden dem Slice effizient Ganzzahlen zugewiesen.

Beispielcode:

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

Schnelleres Scannen von Eingaben

Für ein noch schnelleres Scannen von Eingaben ersetzen Sie die benutzerdefinierte Scanfunktion durch eine effizientere Alternative:

<code class="go">func Scan(a *int) (int, error) {
    return fmt.Scanf("%d\n", a)
}</code>

Beispieleingabe und -ausgabe:

Enter the number of integers
3
Enter the integers
10 20 30
[10 20 30]

Dies wurde optimiert Die Lösung bietet eine effiziente Möglichkeit, Ganzzahlen aus der Standardeingabe zu lesen, ohne den Aufwand einer for-Schleife.

Das obige ist der detaillierte Inhalt vonWie kann ich in Go ganzzahlige Werte ohne For-Schleife lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn