按字母排序
strs := []string{"c", "b", "a"} sort.Strings(strs) // strs is now ["a", "b", "c"]
自定义排序
strs := []string{"c", "b", "a"} sort.Slice(strs, func(i, j int) bool { return strs[i] < strs[j] // 字母序排序 }) // strs is now ["a", "b", "c"]
排序反转
strs := []string{"c", "b", "a"} sort.Strings(strs) // ["a", "b", "c"] sort.Reverse(strs) // strs is now ["c", "b", "a"]
结构体排序
对结构体切片排序时,需要传递一个自定义排序函数sort.Slice()或sort.Sort(),指定按哪个字段排序。例如:
type User struct { Name string Age int } users := []User{ {"Bob", 31}, {"John", 42}, {"Michael", 17}, } // 按Age排序 sort.Slice(users, func(i, j int) bool { return users[i].Age < users[j].Age })