语法错误:意外名称,需要分号或换行符或}

作为前辈,我最近才刚刚开始学习围棋。这可能是我花了一些时间在上面的第 3 天。我已经处理这个错误几个小时了,但我不知道出了什么问题。


package main


import "fmt"


func main () {

  nextFib := fibGenerator();

  fmt.Println(nextFib());

  fmt.Println(nextFib());

  fmt.Println(nextFib());

  fmt.Println(nextFib());

  fmt.Println(nextFib());

}


func fibGenerator () uint {

  var (

    n uint = 0

    back1 uint = 1

    back2 uint = 0

  )


  _computeFib := func () uint {

    if n == 0 {

      n++

      return 0

    } else if n == 1 {

      n++

      return 1

    }

    fib := 1back + 2back // throws compile time error on this line

    2back = 1back

    1back = n

    n++

    return fib

  }


  return _computeFib

}

这是它抛出的错误:语法错误:意外名称,需要分号或换行符或}


这可能很简单,但由于我对 Go 的了解有限,我无法理解它。任何帮助,将不胜感激。


狐的传说
浏览 294回答 2
2回答

犯罪嫌疑人X

撇开重构问题不谈,请记住,go 中的变量必须以字母开头,而不是数字开头。back1andback2是有效的 go 变量,但1backand2back不是。请参阅https://golang.org/ref/spec#Identifiers。

温温酱

您正在尝试访问被调用的变量1back,2back但您的变量实际上被调用back1并且back2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go