猿问

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

这不起作用:


package main


var formatter string = "fmt"


import (

    formatter

)


func main() {

    fmt.Println(formatter)

}

我有:syntax error: non-declaration statement outside function body


尽管一切都有声明。


肥皂起泡泡
浏览 100回答 1
1回答

喵喔喔

根据Go 规范:每个源文件都包含一个包子句,定义它所属的包,后跟一组可能为空的导入声明,声明其希望使用其内容的包,后跟一组可能为空的函数、类型、变量声明,和常数。SourceFile       = PackageClause ";" { ImportDecl ";" } { TopLevelDecl ";" } .这意味着,如果存在任何进口声明,则顶级声明var formatter string = "fmt" 必须位于任何进口声明之后。从技术上讲,您会收到此错误,因为声明的定义不包括导入声明(尽管有名称),并且您的源代码在顶级声明之后有一个导入声明,而顶级声明是不允许的。此外,导入声明部分显示导入路径必须是字符串文字,因此即使不是排序问题,您仍然无法执行您正在尝试的操作。
随时随地看视频慕课网APP

相关分类

Go
我要回答