Heim >Backend-Entwicklung >Golang >Wie kann ich in Go ganzzahlige Werte ohne For-Schleife lesen?
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!