The sort package rearranges slices into a predictable order.

sorting Sorting reorders values so later code can scan or print them predictably.

Sort Values

extra
sort_values.go
Replay: real traced execution (multi-file project)
package main

import (
	"fmt"
	"sort"
)

func main() {
	var extra = 2
	numbers := []int{4, extra, 7}
	sort.Ints(numbers)
	first := numbers[0]
	last := numbers[len(numbers)-1]

	fmt.Println("numbers=", numbers)
	fmt.Println("first=", first)
	fmt.Println("last=", last)
}
package main

import (
	"fmt"
	"sort"
)

func main() {
	var extra = 1
	numbers := []int{4, extra, 7}
	sort.Ints(numbers)
	first := numbers[0]
	last := numbers[len(numbers)-1]

	fmt.Println("numbers=", numbers)
	fmt.Println("first=", first)
	fmt.Println("last=", last)
}
package main

import (
	"fmt"
	"sort"
)

func main() {
	var extra = 9
	numbers := []int{4, extra, 7}
	sort.Ints(numbers)
	first := numbers[0]
	last := numbers[len(numbers)-1]

	fmt.Println("numbers=", numbers)
	fmt.Println("first=", first)
	fmt.Println("last=", last)
}
  1. extra ← 2, numbers ← []int{4, 2, 7}, first ← 2, last ← 7

    8func main() {9  var extra→ 2 = 2 //@extra=9, 110  numbers→ []int{4, 2, 7} := []int{4, extra2, 7}11  sort.Ints(numbers→ []int{2, 4, 7})12  first→ 2 := numbers[0]213  last→ 7 := numbers[]int{2, 4, 7}[len(numbers)-1]1415  fmt.Println("numbers=", numbers[]int{2, 4, 7})16  fmt.Println("first=", first2)17  fmt.Println("last=", last7)18}
    outputnumbers= [2 4 7]
    first= 2
    last= 7
  1. extra ← 1, numbers ← []int{4, 1, 7}, first ← 1, last ← 7

    8func main() {9  var extra→ 1 = 110  numbers→ []int{4, 1, 7} := []int{4, extra1, 7}11  sort.Ints(numbers→ []int{1, 4, 7})12  first→ 1 := numbers[0]113  last→ 7 := numbers[]int{1, 4, 7}[len(numbers)-1]1415  fmt.Println("numbers=", numbers[]int{1, 4, 7})16  fmt.Println("first=", first1)17  fmt.Println("last=", last7)18}
    outputnumbers= [1 4 7]
    first= 1
    last= 7
  1. extra ← 9, numbers ← []int{4, 9, 7}, first ← 4, last ← 9

    8func main() {9  var extra→ 9 = 910  numbers→ []int{4, 9, 7} := []int{4, extra9, 7}11  sort.Ints(numbers→ []int{4, 7, 9})12  first→ 4 := numbers[0]413  last→ 9 := numbers[]int{4, 7, 9}[len(numbers)-1]1415  fmt.Println("numbers=", numbers[]int{4, 7, 9})16  fmt.Println("first=", first4)17  fmt.Println("last=", last9)18}
    outputnumbers= [4 7 9]
    first= 4
    last= 9