Go - Range: Ein umfassender Leitfaden für Anfänger
Hallo, ambitionierte Programmierer! Heute machen wir uns auf eine aufregende Reise in die Welt der Go-Programmierung, dabei konzentrieren wir uns insbesondere auf den range
-Schlüsselwort. Als dein freundlicher Nachbarschaftsinformatiklehrer bin ich hier, um dich durch dieses Konzept mit vielen Beispielen und Erklärungen zu führen. Also hol dir dein liebstes Getränk, mach dich comfortable und tauchen wir ein!
Was ist Range?
Bevor wir mit dem Coden beginnen, lassen Sie uns verstehen, was range
eigentlich ist. In Go ist range
wie ein magischer Reiseleiter für deine Datenstrukturen. Es hilft dir, über verschiedene Datentypen zu iterieren, einschließlich Arrays, Slices, Maps, Strings und Kanäle. Denk daran als eine Schweizer Army Knife für das Durchlaufen von Datensammlungen.
Die Syntax von Range
Die grundlegende Syntax von range
ist ziemlich einfach:
for index, value := range collection {
// Dein Code hier
}
Hier gibt index
dir die Position des Elements und value
gibt dir das Element selbst. Aber keine Sorge, wenn das jetzt noch abstrakt erscheint – wir werden gleich viele Beispiele sehen!
Range mit Arrays und Slices
Lassen Sie mit einem einfachen Beispiel mit einem Array beginnen:
package main
import "fmt"
func main() {
fruits := [3]string{"apple", "banana", "cherry"}
for index, fruit := range fruits {
fmt.Printf("Index: %d, Fruit: %s\n", index, fruit)
}
}
Wenn du dieses Code ausführst, wirst du sehen:
Index: 0, Fruit: apple
Index: 1, Fruit: banana
Index: 2, Fruit: cherry
Was passiert hier? Das range
-Schlüsselwort hilft uns, durch unser fruits
-Array zu iterieren. Bei jeder Iteration gibt es uns den Index und den Wert (Fruit-Name) an dieser Position.
Verwenden nur des Index
Manchmal brauchst du vielleicht nur den Index. In diesem Fall kannst du die Wertvariable weglassen:
for index := range fruits {
fmt.Printf("Index: %d\n", index)
}
Verwenden nur des Wertes
Oder vielleicht interessierst du dich nur für die Werte und nicht die Indizes. Du kannst den leeren Bezeichner _
verwenden, um den Index zu ignorieren:
for _, fruit := range fruits {
fmt.Printf("Fruit: %s\n", fruit)
}
Range mit Maps
Maps in Go sind wie Schatzkästen voller Schlüssel-Wert-Paare. Lassen Sie uns sehen, wie range
damit funktioniert:
package main
import "fmt"
func main() {
ages := map[string]int{
"Alice": 25,
"Bob": 30,
"Charlie": 35,
}
for name, age := range ages {
fmt.Printf("%s ist %d Jahre alt\n", name, age)
}
}
Ausgabe:
Alice ist 25 Jahre alt
Bob ist 30 Jahre alt
Charlie ist 35 Jahre alt
Hier gibt range
uns sowohl den Schlüssel (Name) als auch den Wert (Alter) für jeden Eintrag in der Map.
Range mit Strings
Strings in Go sind Sequenzen von Bytes, und range
kann helfen, darüber zu iterieren:
package main
import "fmt"
func main() {
message := "Hello, 世界"
for index, runeValue := range message {
fmt.Printf("Index: %d, Character: %c, Unicode: %U\n", index, runeValue, runeValue)
}
}
Dieses Beispiel zeigt, wie range
mit multi-byte-Zeichen (wie in Chinesisch) korrekt umgeht.
Range mit Kanälen
Kanäle sind eine einzigartige Funktion in Go für die Kommunikation zwischen Goroutines. Hier ist, wie range
mit Kanälen funktioniert:
package main
import "fmt"
func main() {
ch := make(chan int)
go func() {
ch <- 1
ch <- 2
ch <- 3
close(ch)
}()
for num := range ch {
fmt.Println(num)
}
}
In diesem Beispiel erhält range
weiterhin Werte vom Kanal, bis dieser geschlossen wird.
Häufige Range-Methoden
Hier ist eine Tabelle, die die häufigsten Möglichkeiten zur Verwendung von range
zusammenfasst:
Datentyp | Syntax | Beschreibung |
---|---|---|
Array/Slice | for index, value := range array |
Iteriert über jedes Element, bietet Index und Wert |
Map | for key, value := range map |
Iteriert über jedes Schlüssel-Wert-Paar |
String | for index, runeValue := range string |
Iteriert über jeden Unicode-Codepunkt |
Kanal | for value := range channel |
Empfangt Werte vom Kanal, bis dieser geschlossen wird |
Schlussfolgerung
Und das war's, Leute! Wir haben eine großartige Reise durch das range
-Schlüsselwort in Go unternommen. Von Arrays bis zu Maps, Strings bis zu Kanälen, range
ist dein treuer Begleiter für das Durchlaufen von Datenstrukturen in Go.
Denke daran, Übung macht den Meister. Versuche, deine eigenen Programme mit range
und verschiedenen Datentypen zu schreiben. Experimentiere, mache Fehler und lerne daraus. Das ist der beste Weg, um in der Programmierung versiert zu werden.
Bevor ich gehe, hier ist ein kleiner programmierischer Witz: Warum bevorzugen Programmierer dunklen Modus? Weil Licht Käfer anzieht! ?
Frohes Coden und möge der range
mit dir sein!
Credits: Image by storyset