String 为什么要排序;谭先生&引用;蚂蚁;?
我试图通过对字符串中的字节片段进行排序(使用sort.slice)来对字符串中的字符进行排序。我使用的代码有时会得到正确的结果,但有时会产生我无法理解的结果String 为什么要排序;谭先生&引用;蚂蚁;?,string,sorting,go,String,Sorting,Go,我试图通过对字符串中的字节片段进行排序(使用sort.slice)来对字符串中的字符进行排序。我使用的代码有时会得到正确的结果,但有时会产生我无法理解的结果 主程序包 进口( “fmt” “排序” ) func main(){ 对于uS:=范围[]字符串{“nat”、“tan”、“ant”}{ b:=[]字节 sort.Slice(b,func(i int,j int)bool{返回s[i]
主程序包
进口(
“fmt”
“排序”
)
func main(){
对于uS:=范围[]字符串{“nat”、“tan”、“ant”}{
b:=[]字节
sort.Slice(b,func(i int,j int)bool{返回s[i]
我希望“nat”、“tan”和“ant”都被排序为“ant”,但“tan”被排序为“atn”。更改您的
排序。将切片行更改为:
sort.Slice(b, func(i int, j int) bool { return b[i] < b[j] })
sort.Slice(b,func(i int,j int)bool{返回b[i]
sort.Slice
需要使用less
函数来比较切片中的值,以便按照您想要的方式进行排序。您的错误是在less
函数中使用了s
而不是b
。将排序.切片更改为:
sort.Slice(b, func(i int, j int) bool { return b[i] < b[j] })
sort.Slice(b,func(i int,j int)bool{返回b[i]
sort.Slice
需要使用less
函数来比较切片中的值,以便按照您想要的方式进行排序。您的错误在于在less
函数中使用了s
而不是b