声明
声明和作用域
https://golang.org/ref/spec#Declarations_and_scope
声明将一个非空的标识符绑定到常量、类型、变量、函数、标签或包上。程序中的每个标识符都必须声明。任何标识符都不能在同一个块中声明两次,标识符也不能在文件和包块中同时声明。
空白标识符可以像其他标识符一样在声明中使用,但它不引入绑定,因此不声明。在包块中,标识符init只能用于init函数的声明,和空白标识符一样,它不会引入新的绑定。
Declaration = ConstDecl | TypeDecl | VarDecl .
TopLevelDecl = Declaration | FunctionDecl | MethodDecl .