синтаксическая ошибка: неожиданная точка с запятой или новая строка, ожидание }

У меня есть пример кода, в котором я определяю массив, но он не компилируется:

$ 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

Как получилось?

7
задан OscarRyz 9 March 2012 в 16:57
поделиться