Go-为什么我的For Loop会抛出“意外的半结肠或新线”?

时间:2016-02-13 22:06:14

标签: go

我正在写一个骰子滚动功能。为了添加每个die的结果,我使用for循环添加到输出变量。但是,当我尝试构建时,我收到了一个错误;

  

语法错误:意外的分号或换行符,期待{

这是在初始化for循环的行上抛出的。 这是我的代码:

    for i := 0; i < [0]si; i++ {
        output := output + mt.Intn([1]si)
    }

si只是一个包含2个值的int数组,mt是我在导入时给math / rand命名的名称。

2 个答案:

答案 0 :(得分:1)

你的循环有几个问题:

  1. 使用方括号是奇怪的。在类型定义之外,它们在切片/数组名称之后,例如x[i]会为您提供切片x i 元素。
  2. 循环体内没有i的引用,因此循环的每次迭代都会做同样的事情。
  3. 您可能应该在没有冒号的情况下编写output = output + ...。否则,在循环的每次迭代期间声明一个新变量output,并在之后立即忘记,以便循环无效。
  4. 编译器错误可能是由第一个问题引起的。

答案 1 :(得分:0)

您可以在Go中访问带有varname [idx]的数组,就像在大多数其他语言中一样。只有在声明类型为si的新数组时,才使用[size] si前缀语法。您收到错误是因为您的代码在语法上无效。您正在尝试将i与0 si的数组进行比较。