2016-10-07 7 views
0

このエラーがなぜ起こっているのかわかりませんし、検索した場所を説明できません。インポートステートメントの場所

package main 

var a = 23 

import (
    "fmt" 
) 

func main() { 
    fmt.Println(a) 
} 

を実行する上で

は私が

# command-line-arguments 
./test.go:5: syntax error: non-declaration statement outside function body 

は、私はちょうどパッケージ宣言の後に輸入を続けるならば、それは正常に動作することを理解して、このエラーを取得しています。私が理解できないのは、パッケージの宣言の後にインポートする必要があるのか​​、そうでないのかということです。

答えて

4

specはそのようにそれを定義するので:

各ソースファイルは、パッケージを定義するパッケージ節で構成され、それはコンテンツが希望するパッケージを宣言インポート宣言の可能性が空集合、続い属します関数、型、変数、定数の宣言が空の場合があります。あなたが他の宣言の前に、あなたのimportステートメントを配置する必要があることを意味

SourceFile = PackageClause ";" { ImportDecl ";" } { TopLevelDecl ";" } .