Slices sortieren
sort.Slice und Hilfsfunktionen
Slices sortieren ist eine kostenlose Go Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Go Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum Sortieren wichtig ist
Sortieren bringt Elemente in eine definierte Reihenfolge. Gos sort-Paket aus der Standardbibliothek erledigt dies effizient.
In Go schreiben Sie nur selten Ihren eigenen Sortieralgorithmus. Stattdessen rufen Sie Hilfsfunktionen auf, die mit Slices arbeiten.
sort importieren
Um das Paket zu verwenden, importieren Sie es mit import "sort". Es gehört zur Standardbibliothek, daher ist kein externer Download erforderlich.
package main
import (
"fmt"
"sort"
)
func main() {
fmt.Println("sort imported")
_ = sort.IntsAreSorted([]int{1, 2, 3})
}Integer sortieren
sort.Ints sortiert ein Slice vom Typ int aufsteigend und direkt im Slice. Das ursprüngliche Slice wird verändert.
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{5, 2, 8, 1, 9}
sort.Ints(nums)
fmt.Println(nums)
}Strings sortieren
sort.Strings sortiert ein String-Slice lexikografisch, also alphabetisch in Byte-Reihenfolge.
package main
import (
"fmt"
"sort"
)
func main() {
words := []string{"banana", "apple", "cherry"}
sort.Strings(words)
fmt.Println(words)
}Gleitkommazahlen sortieren
sort.Float64s sortiert ein Slice mit Werten vom Typ float64 aufsteigend.
package main
import (
"fmt"
"sort"
)
func main() {
values := []float64{3.2, 1.5, 2.8}
sort.Float64s(values)
fmt.Println(values)
}sort.Slice
sort.Slice sortiert jedes Slice mithilfe einer von Ihnen bereitgestellten less-Funktion. Die Funktion erhält die beiden Indizes i und j und gibt true zurück, wenn Element i vor Element j stehen soll.
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{5, 2, 8, 1}
sort.Slice(nums, func(i, j int) bool {
return nums[i] < nums[j]
})
fmt.Println(nums)
}Absteigende Reihenfolge
Für eine absteigende Sortierung drehen Sie den Vergleich in der less-Funktion um: return nums[i] > nums[j].
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{5, 2, 8, 1}
sort.Slice(nums, func(i, j int) bool {
return nums[i] > nums[j]
})
fmt.Println(nums)
}Structs sortieren
sort.Slice ist besonders nützlich für Structs. Sie entscheiden, welches Feld die Reihenfolge bestimmt.
package main
import (
"fmt"
"sort"
)
type Person struct {
Name string
Age int
}
func main() {
people := []Person{{"Bob", 30}, {"Alice", 25}}
sort.Slice(people, func(i, j int) bool {
return people[i].Age < people[j].Age
})
fmt.Println(people)
}Prüfen, ob sortiert ist
Hilfsfunktionen wie sort.IntsAreSorted und sort.SliceIsSorted geben true zurück, wenn ein Slice bereits sortiert ist, ohne es zu verändern.
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{1, 2, 3}
fmt.Println(sort.IntsAreSorted(nums))
}Direkte Änderung
Alle diese Funktionen sortieren direkt im Slice. Sie geben kein neues Slice zurück. Nach dem Aufruf von sort.Ints(s) ist die Variable s selbst neu geordnet.
package main
import (
"fmt"
"sort"
)
func main() {
s := []int{3, 1, 2}
sort.Ints(s)
fmt.Println("s is now:", s)
}Die richtige Hilfsfunktion wählen
Verwenden Sie die typisierten Hilfsfunktionen (sort.Ints, sort.Strings, sort.Float64s) für einfache Slices. Verwenden Sie sort.Slice, wenn Sie eine eigene Regel benötigen oder Structs sortieren.
sort.Ints– Integer aufsteigendsort.Slice– beliebige Daten nach Ihrer Regel
Kurzer Test
Was gibt die less-Funktion in sort.Slice zurück?
Zusammenfassung
Sie haben gelernt, mit dem sort-Paket zu sortieren:
sort.Ints,sort.Strings,sort.Float64sfür typisierte Slicessort.Slicemit einer less-Funktion für eigene Regeln und Structs- Alle Sortiervorgänge erfolgen direkt im Slice
Häufig gestellte Fragen
Ist die Lektion „Slices sortieren“ kostenlos?
Ja — der vollständige Text von „Slices sortieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Go Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Go Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Slices sortieren“?
sort.Slice und Hilfsfunktionen Du übst Go Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Go Academy zu starten?
Keine Vorkenntnisse erforderlich. Go Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Slices sortieren“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Go Academy-Lektion Code schreiben und ausführen?
Ja. Jede Go Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.