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 */