Go Academy · Les

Slices sorteren

sort.Slice en hulpfuncties

Les 1 van 413 stappen

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 oplopend
  • sort.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.Float64s voor slices van specifieke typen
  • sort.Slice met een less-functie voor aangepaste regels en structs
  • Alle sorteringen gebeuren ter plekke
Gratis beginnen

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.

Alle lessen in deze cursus

  1. Slices sorteren
  2. Aangepaste sorteervolgorden
  3. Gesorteerde gegevens doorzoeken
  4. Stabiel sorteren
← Terug naar Go Academy