Go-Übungen
Reverse a String in Go
Reverse characters and words correctly, including letters like é.
Das lernst du
- []rune
- Swapping with two indexes
- slices.Reverse
reverse("Go")
- 1
[]runeG o - 2
swapo G - 3
string(runes)"oG"
Reverse runes, not bytes
Go strings are UTF-8, so one character can take more than one byte. Reversing a slice of runes keeps letters such as é intact.
[]rune(text) splits the text into characters. Two indexes walk towards each other and swap the characters they point at. strings.Fields splits a sentence into words and slices.Reverse turns their order around.
Das Wichtigste
- A character can take more than one byte.
- []rune splits text into characters.
- Two indexes swap from both ends.
Ausführbares Go-Beispiel
main.go
package main
import (
"fmt"
"slices"
"strings"
)
func reverse(text string) string {
runes := []rune(text)
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
runes[i], runes[j] = runes[j], runes[i]
}
return string(runes)
}
func reverseWords(text string) string {
words := strings.Fields(text)
slices.Reverse(words)
return strings.Join(words, " ")
}
func main() {
fmt.Println(reverse("Go"))
fmt.Println(reverse("héllo"))
fmt.Println(reverseWords("simple fast reliable"))
}
oG
olléh
reliable fast simpleÜben
Öffne das Beispiel im Online-Compiler, ändere einen Wert oder füge eine Zeile hinzu und sage die Ausgabe voraus, bevor du es ausführst. Bring den Code danach absichtlich zum Scheitern und lies die Meldung des Compilers.
Lektion fertig?
Markiere sie als gelernt, um deinen Fortschritt zu verfolgen.
Dein Fortschritt ist in diesem Browser gespeichert Melde dich an, um ihn auf jedem Gerät zu behalten.
Mit einer Challenge üben
Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.
Alle Challenges