I know this is very basic but i want to know how to access elements individually,the values of Sourceposition and currentarray keep changing, this operation is apart of recursive function.
For example:
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
this gives me a error index out of range, Can someone help me , how to this calculation.
On your last iteration (when j == len(currentarray) - 1
which is 7) you're accessing currentarray[7]
and then if that equals zero trying to access currentarray[8]
which is out of range for [8]int
.
The fix depends on the intended behaviour, it might be that you need to fix your loop invariant to be j < len(currentarray) - 1
, or, if you want to treat your array in a circular way, you may want to do Sourceposition = currentarray[(j + 1) % len(currentarray)]
.