Arrays 在Golang中单独访问数组元素

Arrays 在Golang中单独访问数组元素,arrays,loops,go,Arrays,Loops,Go,我知道这是非常基本的,但我想知道如何单独访问元素,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(Sourceposit

我知道这是非常基本的,但我想知道如何单独访问元素,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
var Sourceposition int
var currentarray[8]int
对于j:=0;j在上一次迭代中(当
j==len(currentarray)-1
是7时),您正在访问
currentarray[7]
,如果该值等于零,则尝试访问
currentarray[8]
,该值超出
[8]int
的范围

修复取决于预期的行为,可能是您需要将循环不变量修复为
j
,或者,如果您希望以循环方式处理数组,您可能希望在上一次迭代(当
j==len时)执行
Sourceposition=currentary[(j+1)%len(currentary)]
(currentarray)-1
即7)您正在访问
currentarray[7]
,如果该值等于零,则尝试访问
currentarray[8]
,该值超出
[8]int
的范围

修复取决于预期的行为,可能需要将循环不变量修复为
j
,或者,如果希望以循环方式处理数组,可能需要执行
Sourceposition=currentary[(j+1)%len(currentary)]

,这是我的代码,我得到了这个索引超出范围的错误,我不明白为什么,在我之前的问题中我提到了我正在研究的内容,如果你能帮我的话,那就太好了。@Roman Khimov,这是我的代码,我得到了这个索引超出范围的错误,我不明白为什么,在我之前的问题中我提到了我正在研究的内容如果你能帮上忙,那就太好了。@Roman Khimov