fmt.println是否必须在GO中的功能中



fmt.Println是否需要始终属于函数?

以前曾经使用过Python,它允许它,但是在研究中,Java似乎没有

fmt.Println("can I do it?")

返回:

语法错误:非解释语句外部功能正文

它可能不在函数之外,请参见此示例:

var n, err = fmt.Println("I can do it")
func main() {
    fmt.Println("In main(),", n, err)
}

它输出(在Go Playground上尝试(:

I can do it
In main(), 12 <nil>

(输出值12 <nil>是第一个fmt.Println()调用返回的值,它已编写的字节数以及返回的错误 nil表示没有错误。(

还要注意,您甚至不必存储fmt.Prinln()的返回值,您可以使用这样的空白标识符:

var _, _ = fmt.Println("I can do it")

它不能独立于顶级"介于"之间。顶级声明,但上述变量声明(带有空白标识符(几乎取得了相同的成就。

规格:源文件组织:

每个源文件都由一个软件包子句组成,该软件包子句定义其所属的软件包,然后是一组空的导入声明集,这些声明声明了其希望使用的内容,然后是一套可能空的函数声明,类型,变量和常数。

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

显然,软件包子句或导入声明不能包含fmt.Println()调用,而最高级别声明:

Declaration   = ConstDecl | TypeDecl | VarDecl .
TopLevelDecl  = Declaration | FunctionDecl | MethodDecl .

常数声明不能包含fmt.Println()调用,这不是恒定的表达式。类型声明也不能包含函数调用。

可变声明可以,如答案顶部的示例所示。

功能和方法声明也可以调用fmt.Println(),但是您特别询问fmt.Println()是否可以在其外部调用。

因此

go始终在主函数中启动执行,因此fmt.println((需要在主函数中或在main中称为函数。

最新更新