这不起作用:package mainvar formatter string = "fmt"import ( formatter)func main() { fmt.Println(formatter)}我有:syntax error: non-declaration statement outside function body尽管一切都有声明。
1 回答
喵喔喔
TA贡献1735条经验 获得超5个赞
根据Go 规范:
每个源文件都包含一个包子句,定义它所属的包,后跟一组可能为空的导入声明,声明其希望使用其内容的包,后跟一组可能为空的函数、类型、变量声明,和常数。
SourceFile = PackageClause ";" { ImportDecl ";" } { TopLevelDecl ";" } .
这意味着,如果存在任何进口声明,则顶级声明var formatter string = "fmt"
必须位于任何进口声明之后。从技术上讲,您会收到此错误,因为声明的定义不包括导入声明(尽管有名称),并且您的源代码在顶级声明之后有一个导入声明,而顶级声明是不允许的。
此外,导入声明部分显示导入路径必须是字符串文字,因此即使不是排序问题,您仍然无法执行您正在尝试的操作。
- 1 回答
- 0 关注
- 99 浏览
添加回答
举报
0/150
提交
取消