我有一个简单的for循环,它遍历一个整数切片并改变当前的位置,如果next更小,基本上是一个排序,但它一直显示我这个错误,说
panic: runtime error: index out of range
以下是代码:
func sort(n int, l []int) interface{} {
fmt.Println(l)
if d == false {
d = true
for i := range l {
n := i + 1
t := l[i]
l[i] = l[n]
l[n] = t
arr = l
d = false
}
return sort(n, arr)
}
return arr
}
返回的arr被声明为全局变量。 这是错误:
panic: runtime error: index out of range
goroutine 1 [running]:
main.troubleSort(0x5, 0xc42001a150, 0x5, 0x5, 0x0, 0xc42000e1d0)
/home/julkreshpaj/codejam/Trouble Sort/Solution.go:21 +0x1c1
main.main()
/home/julkreshpaj/codejam/Trouble Sort/Solution.go:60 +0x82
exit status 2
答案 0 :(得分:0)
您尝试访问l[n]
n := i + 1
,i
是l
的索引。这意味着,在最后一次循环中,当i
是l
中的最后一个元素时,n
将始终超过l
的最后一个元素。每一次。