【问题标题】:Declaring an anonymous function outside main() at package level in go lang gives error在 go lang 的包级别声明 main() 之外的匿名函数会出错
【发布时间】:2021-03-04 16:47:57
【问题描述】:

在 main() 块外声明匿名函数时出现编译错误。我很好奇 go 中匿名函数的作用域。分配给变量有效,但没有分配它不起作用。两段代码有什么区别???

此代码工作! `

package main
import "fmt"

func(){
      fmt.Println("Welcome! from Anonymous function")
}

func main() {
        printme := ()
}

` 这段代码有效!!

`

package main
import "fmt"

var pri = func(){
      fmt.Println("Welcome! from Anonymous function")
}

func main() {

        pri()
}

` 它为无效部分给出的错误是:

命令行参数

./anony-func-2.go:8:7: 语法错误:意外 {,期望名称或 ( ./anony-func-2.go:8:8: 方法没有接收器 ./anony-func-2.go:14:14: 语法错误:意外),期待表达式

【问题讨论】:

    标签: function go anonymous


    【解决方案1】:

    引用此blog

    main() 函数是一种特殊类型的函数,它是 可执行程序的入口点。它不需要任何论据 也不返回任何东西。 Go 自动调用 main() 函数,所以有 不需要显式调用 main() 函数和每个可执行文件 程序必须包含单个主包和 main() 函数。

    这意味着除了main() 函数之外不会调用其他函数,因此在main() 之外有一个匿名函数是没有意义的,因为它无论如何都不会被调用。

    【讨论】:

      猜你喜欢
      • 2012-11-19
      • 2013-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      相关资源
      最近更新 更多