我知道这是非常基本的,但是我想知道如何单独访问元素,Sourceposition和currentarray的值不断变化,此操作是递归函数的一部分。

例如:

 var Sourceposition int

var currentarray [8]int

for j:=0;j<len(currentarray);j++
{
  if currentarray[j]==0{
  Sourceposition = currentarray[j+1]}
fmt.Pritnln(Sourceposition)
}

//random statements

这给了我一个错误指数超出范围,有人可以帮我,如何计算。

最佳答案

在最后一次迭代中(当j == len(currentarray) - 1为7时),您正在访问currentarray[7],然后如果它等于零,则尝试访问currentarray[8]超出范围的[8]int

该修复取决于预期的行为,可能是您需要将循环不变量修复为j < len(currentarray) - 1,或者,如果要以循环方式处理数组,则可能需要Sourceposition = currentarray[(j + 1) % len(currentarray)]

10-04 16:43