为了账号安全,请及时绑定邮箱和手机立即绑定

语法错误:函数体外部非声明语句,但其中的所有内容都是声明

语法错误:函数体外部非声明语句,但其中的所有内容都是声明

Go
肥皂起泡泡 2023-06-26 17:46:48
这不起作用: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" 必须位于任何进口声明之后。从技术上讲,您会收到此错误,因为声明的定义不包括导入声明(尽管有名称),并且您的源代码在顶级声明之后有一个导入声明,而顶级声明是不允许的。

此外,导入声明部分显示导入路径必须是字符串文字,因此即使不是排序问题,您仍然无法执行您正在尝试的操作。


查看完整回答
反对 回复 2023-06-26
  • 1 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信