1 回答

TA贡献1846条经验 获得超7个赞
您可能希望传递该数组一次以转换为整数,而不是调用时间:Atoin^2
ints:=make([]int,0,len(mySlice)
for _,x:=range mySlice {
v, err:=strconv.Atoi(x)
if err!=nil {
return err
}
ints=append(ints,v)
}
sort.Slice(mySlice,func(i,j int) bool {return ints[i]>ints[j]})
但是,在一般情况下,您可能需要在外部作用域中设置一个错误:
var err error
sort.Slice(mySlice, func(i, j int) bool {
numA, err1 := strconv.Atoi(mySlice[i])
if err1!=nil && err==nil {
err=err1
}
numB, err2 := strconv.Atoi(mySlice[j])
if err2!=nil && err==nil {
err=err2
}
return numA > numB
})
return err
上面的代码将捕获第一个检测到的错误。
- 1 回答
- 0 关注
- 98 浏览
添加回答
举报