跟随ID代码段
package main
import "fmt"
var text []int64
func main() {
for i, j := 0, 1; i < 4; i, j = i+1, j+1 {
fmt.Println("Value of i, j:", i, j)
fmt.Println(text[j])
}
}
它显示以下错误;
Value of i, j: 0 1
panic: runtime error: index out of range
goroutine 1 [running]:
main.main()
/home/cg/root/6063741/main.go:13 +0x268
exit status 2
我想知道如何解决此错误。
谢谢
这是我要转换成的Java代码;
long text[];
int num = 1
text = new long[num];
for (int i=0; i<num; i++)
{
text[i] = 0;
// do something
}
if (num > 1) {
for (int i=0,j=1; i<numSubs; i++,j++) {
// do something
System.out.Println(text[i]
)
}
}
答案 0 :(得分:1)
The Go Programming Language Specification
对于切片
a
,a[x]
表示由a
索引的切片x
的元素。 如果x
,索引0 <= x < len(a)
在范围内,否则超出范围 范围。
变量i
和j
是切片text
的索引。它们必须始终在以下范围内:0 <= i < len(text)
和0 <= j < len(text)
。由于i < j
,因此简化为0 <= i
和j < len(text)
。
对于您的Go示例,
package main
import "fmt"
var text []int64
func main() {
for i, j := 0, 1; i < 4 && j < len(text); i, j = i+1, j+1 {
fmt.Println("Value of i, j:", i, j)
fmt.Println(text[j])
}
}