语法错误:意外的分号或换行符,应为}

我在定义数组的地方有以下示例代码,但无法编译:


$ cat a.go

package f

func t() []int  {

    arr := [] int {

        1,

        2

    }

    return arr

}


oreyes@OREYES-WIN7 ~/code/go

$ go build a.go

# command-line-arguments

.\a.go:5: syntax error: unexpected semicolon or newline, expecting }

.\a.go:7: non-declaration statement outside function body

.\a.go:8: syntax error: unexpected }

但是,如果我删除换行符,它将起作用:


$ cat a.go

package f

func t() []int  {

    arr := [] int {

        1,

        2 }

    return arr

}


oreyes@OREYES-WIN7 ~/code/go

$ go build a.go

怎么来的?


温温酱
浏览 337回答 2
2回答

慕的地6264312

只需,在包含数组元素的所有行的末尾添加一个逗号():arr :=  [] func(int) int {    func( x int ) int { return x + 1 },    func( y int ) int { return y * 2 }, // A comma (to prevent automatic semicolon insertion)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go