sort排序
sort排序
对象内排序
sort.Slice(list, func(i, j int) bool {
return list[i].age< list[j].age
})
字符串排序
方式一:
func reverse(str string) string {
var result string
strLen := len(str)
for i := 0; i < strLen; i++ {
result = result + fmt.Sprintf("%c", str[strLen-i-1])
}
return result
}
方式二:
func reverse2(str string) string {
var result []byte
tmp := []byte(str)
length := len(str)
for i := 0; i < length; i++ {
result = append(result, tmp[length-i-1])
}
return string(result)
}
方式三:
func reverse13(s string) string {
runes := []rune(s)
for from, to := 0, len(runes)-1; from < to; from, to = from+1, to-1 {
runes[from], runes[to] = runes[to], runes[from]
}
return string(runes)
}
切片排序
r := []int{5,2,6,10,3} // []int{}
sort.Ints(r) // 升序
sort.Sort(sort.IntSlice(r)) //升序
fmt.Println(r) // [2 3 5 6 10]
a := []float64{5.5, 2.2, 6.6, 3.3, 1.1, 4.4}
sort.Float64s(a) // 升序
sort.Sort(sort.Float64Slice(a)) // 升序
fmt.Println(a) // [1.1 2.2 3.3 4.4 5.5 6.6]
s := []string{"PHP", "golang", "python", "C", "Objective-C"}
sort.Strings(s) // 字母开头升序
sort.Sort(sort.StringSlice(s)) //字母开头升序
fmt.Println(s) // [C Objective-C PHP golang python]
逆序:
func reverse(s []int) []int {
for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 {
s[i], s[j] = s[j], s[i]
}
return s
}
func main() {
r := []int{5,2,6,10,3}
k:=reverse(r) // 逆序
fmt.Println(k) // [3 10 6 2 5]
sort.Ints(r) // 升序
fmt.Println(r) // [2 3 5 6 10]
k2:=reverse(r) // 逆序
fmt.Println(k2) // [10 6 5 3 2]
}
选择了IT,必定终身学习