Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 为什么要排序;谭先生&引用;蚂蚁;?_String_Sorting_Go - Fatal编程技术网

String 为什么要排序;谭先生&引用;蚂蚁;?

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]

我试图通过对字符串中的字节片段进行排序(使用sort.slice)来对字符串中的字符进行排序。我使用的代码有时会得到正确的结果,但有时会产生我无法理解的结果

主程序包
进口(
“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