Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "sort"
  6. )
  7.  
  8. func main() {
  9. numbers := []int{33, 4, 55, 4, 12, 1, -3, 46}
  10. fmt.Printf("numbers type => %T\n", numbers)
  11. fmt.Printf("numbers sort.Intslice type => %T\n", sort.IntSlice(numbers))
  12.  
  13. //The most basic sort way
  14. //sort.Ints(numbers) // also sort.Strings ..etc. Look at documentation
  15. //fmt.Println(numbers)
  16.  
  17. //we can also make sort via closure
  18. sort.Slice(numbers, func(i, j int) bool {
  19. return numbers[i] < numbers[j]
  20. })
  21. fmt.Println("Sort via closure. Numbers:",numbers)
  22.  
  23. //Sort and Reverse expects Interface type. IntSlice is an Interface cause it implements Len,Less,Swap methods
  24. t := sort.IntSlice(numbers)
  25. fmt.Printf("t type => %T\n", t)
  26.  
  27. fmt.Println("Before sort. Numbers =>", numbers)
  28. sort.Sort(t)
  29. fmt.Println("After sort. Numbers =>", numbers)
  30.  
  31. fmt.Println("Before Reverse sort. Numbers =>", numbers)
  32. sort.Sort(sort.Reverse(t))
  33. fmt.Println("After Reverse sort. Numbers =>", numbers)
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement