Golang中的多次初始化

时间:2018-07-17 20:25:03

标签: loops for-loop go

跟随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]
)
       }
}

1 个答案:

答案 0 :(得分:1)

  

The Go Programming Language Specification

     

Index expressions

     

对于切片aa[x]表示由a索引的切片x的元素。   如果x,索引0 <= x < len(a)在范围内,否则超出范围   范围。


变量ij是切片text的索引。它们必须始终在以下范围内:0 <= i < len(text)0 <= j < len(text)。由于i < j,因此简化为0 <= ij < 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])
    }
}

游乐场:https://play.golang.org/p/02r_VY9VMa5