2015-06-21 133 views
3

我尝试了,突破并继续golang,我这样做...获取语法错误:意外的逗号,期待{

func main() { 
    for k, i := 0, 0; i < 10; i++, k++ { 
     for j := 0; j < 10; j++ { 
      if k == 10 { 
       fmt.Println("Value of k is:", k) 
       break 
      } 
     } 
    } 
} 

我正在一号for行此语法错误:

syntax error: unexpected comma, expecting {

我不知道,应该如何改正正确的语法。

+0

http://play.golang.org/p/wL8rL9fepd – NJMR

回答

8

需要初始化两个kifor k, i := 0, 0;

另外,你不能这样做:i++, k++。相反,你需要做的i, k = i+1, k+1

this reference in Effective Go

Finally, Go has no comma operator and ++ and -- are statements not expressions. Thus if you want to run multiple variables in a for you should use parallel assignment (although that precludes ++ and --).

// Reverse a

for i, j := 0, len(a)-1; i < j; i, j = i+1, j-1 { a[i], a[j] = a[j], a[i] }

func main() { 
    for k, i := 0, 0; i < 10; i, k = i+1, k+1 { 
     for j := 0; j < 10; j++ { 
      if k == 10 { 
       fmt.Println("Value of k is:", k) 
       break 
      } 
     } 
    } 
} 

还要注意k从未达到10这样的,所以你的邮件将无法打印。您正在同时递增i & k,并且外循环停止在i < 10(因此k < 10)。

+0

雅,我知道,我只是在玩,休息和继续。感谢你的回答... – NJMR

相关问题