Slices sorteren
sort.Slice en hulpfuncties
Slices sorteren is een gratis Go Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Go Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Go Academy bevat in totaal 4 lessen.
Waarom sorteren belangrijk is
Sorteren zet elementen in een bepaalde volgorde. Het sort-pakket uit de standaardbibliotheek van Go doet dit efficiënt.
In Go schrijf je zelden zelf een sorteeralgoritme. In plaats daarvan roep je hulpfuncties aan die op slices werken.
sort importeren
Om het pakket te gebruiken, importeer je het met import "sort". Het staat in de standaardbibliotheek, dus je hoeft niets externs te downloaden.
package main
import (
"fmt"
"sort"
)
func main() {
fmt.Println("sort imported")
_ = sort.IntsAreSorted([]int{1, 2, 3})
}Gehele getallen sorteren
sort.Ints sorteert een slice van int oplopend en ter plekke. De oorspronkelijke slice wordt gewijzigd.
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{5, 2, 8, 1, 9}
sort.Ints(nums)
fmt.Println(nums)
}Tekenreeksen sorteren
sort.Strings sorteert een slice met tekenreeksen lexicografisch, dus alfabetisch volgens de bytevolgorde.
package main
import (
"fmt"
"sort"
)
func main() {
words := []string{"banana", "apple", "cherry"}
sort.Strings(words)
fmt.Println(words)
}Kommagetallen sorteren
sort.Float64s sorteert een slice met waarden van het type float64 in oplopende volgorde.
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 sorteert elke slice met behulp van een less-functie die je aanlevert. De functie krijgt twee indexen, i en j, en retourneert true als element i vóór j moet komen.
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)
}Aflopende volgorde
Als je aflopend wilt sorteren, draai je de vergelijking in de less-functie om: 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 sorteren
sort.Slice komt goed van pas bij structs. Jij bepaalt welk veld de volgorde bepaalt.
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)
}Controleren of iets gesorteerd is
Hulpfuncties zoals sort.IntsAreSorted en sort.SliceIsSorted retourneren true als een slice al gesorteerd is, zonder die te wijzigen.
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{1, 2, 3}
fmt.Println(sort.IntsAreSorted(nums))
}Ter plekke wijzigen
Al deze functies sorteren ter plekke. Ze retourneren geen nieuwe slice. Na het aanroepen van sort.Ints(s) is de variabele s zelf opnieuw geordend.
package main
import (
"fmt"
"sort"
)
func main() {
s := []int{3, 1, 2}
sort.Ints(s)
fmt.Println("s is now:", s)
}De juiste hulpfunctie kiezen
Gebruik de hulpfuncties voor specifieke typen (sort.Ints, sort.Strings, sort.Float64s) voor eenvoudige slices. Gebruik sort.Slice wanneer je een aangepaste regel nodig hebt of structs wilt sorteren.
sort.Ints- gehele getallen oplopendsort.Slice- alles, volgens jouw regel
Snelle controle
Wat retourneert de less-functie in sort.Slice?
Samenvatting
Je hebt geleerd hoe je sorteert met het sort-pakket:
sort.Ints,sort.Strings,sort.Float64svoor slices van specifieke typensort.Slicemet een less-functie voor aangepaste regels en structs- Alle sorteringen gebeuren ter plekke
Leer Go met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 51
- Lessen
- 203
Veelgestelde vragen
Is de les “Slices sorteren” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Go Academy, waaronder “Slices sorteren”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Go Academy bevat in totaal 4 lessen.
Wat leer ik in “Slices sorteren”?
sort.Slice en hulpfuncties Je oefent met Go Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Go Academy te beginnen?
Ervaring vooraf is niet nodig. Go Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Slices sorteren”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Go Academy?
Ja. Elke les over Go Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.