Heim > Backend-Entwicklung > Golang > Wie kann man in Go effizient mehrere Zahlen in einem Slice scannen?

Wie kann man in Go effizient mehrere Zahlen in einem Slice scannen?

Barbara Streisand
Freigeben: 2024-12-17 09:37:25
Original
925 Leute haben es durchsucht

How to Efficiently Scan Multiple Numbers into a Slice in Go?

Zahlen in Slices in Go scannen

Beim Einlesen mehrerer Zahlen aus der Standardeingabe in Go können Sie einzelnen Variablen Werte zuweisen:

numbers := make([]int, 2)
fmt.Fscan(os.Stdin, &numbers[0], &numbers[1])
Nach dem Login kopieren

Vielleicht möchten Sie den Vorgang jedoch vereinfachen und direkt in ein Slice einlesen. Das fmt-Paket unterstützt das Scannen in Slices nicht, aber die folgende Dienstprogrammfunktion kann helfen:

func packAddrs(n []int) []interface{} {
    p := make([]interface{}, len(n))
    for i := range n {
        p[i] = &n[i]
    }
    return p
}
Nach dem Login kopieren

Diese Funktion erstellt ein Adressen-Slice für jedes Element im Eingabe-Slice. Mit dieser Funktion können Sie in ein Slice wie folgt scannen:

numbers := make([]int, 2)
n, err := fmt.Fscan(os.Stdin, packAddrs(numbers)...)
fmt.Println(numbers, n, err)
Nach dem Login kopieren

Testen Sie dies mit fmt.Sscan():

numbers := make([]int, 5)
n, err := fmt.Sscan("1 3 5 7 9", packAddrs(numbers)...)
fmt.Println(numbers, n, err)
Nach dem Login kopieren

Ausgabe:

[1 3 5 7 9] 5 <nil>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann man in Go effizient mehrere Zahlen in einem Slice scannen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage