Standard Library Utilities
Sort Values
The sort package rearranges slices into a predictable order.
sorting
Sorting reorders values so later code can scan or print them predictably.
Sort Values
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)
}
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
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
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