github.com/glycerine/zebrapack@v4.1.1-0.20181107023619-e955d028f9bf+incompatible/slides/state-of-go/stdlib/sort/sort_new.go (about)

     1  package main
     2  
     3  /*
     4  import (
     5  	"fmt"
     6  	"sort"
     7  )
     8  
     9  type Person struct {
    10  	Name     string
    11  	AgeYears int
    12  	SSN      int
    13  }
    14  
    15  func main() {
    16  	p := []Person{
    17  		{"Alice", 20, 1234},
    18  		{"Bob", 10, 2345},
    19  		{"Carla", 15, 3456},
    20  	}
    21  
    22  	sort.Slice(p, func(i, j int) bool { return p[i].Name < p[j].Name })
    23  	fmt.Printf("sorted by name: %v\n", p)
    24  
    25  	sort.Slice(p, func(i, j int) bool { return p[i].AgeYears < p[j].AgeYears })
    26  	fmt.Printf("sorted by age: %v\n", p)
    27  
    28  	sort.Slice(p, func(i, j int) bool { return p[i].SSN < p[j].SSN })
    29  	fmt.Printf("sorted by SSN: %v\n", p)
    30  }
    31  */