function - 在 go lang 的包级别声明 main() 之外的匿名函数会出错
问题描述
在 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.去:14:14:语法错误:意外),期待表达式
解决方案
引用此博客:
函数是一种特殊类型的
main()
函数,它是可执行程序的入口点。它不接受任何参数,也不返回任何内容。Go 会自动调用 main() 函数,因此不需要显式调用 main() 函数,每个可执行程序都必须包含单个 main 包和 main() 函数。
这意味着除了该main()
函数之外不会调用其他函数,因此在外部有一个匿名函数是没有意义的,main()
因为它无论如何都不会被调用。
推荐阅读
- chart.js - chart.js:在 y 轴上设置特定数字
- php - 连接到外部数据库时出错 - mysqli_connect(): (HY000/2002): Connection timed out
- c++ - 如何检查移动构造函数是否自动生成?
- apache-flink - 如果一项工作失败,如何使整个 flink 应用程序失败?
- javascript - 使用范围请求从服务器下载大文件
- html - 让我的专栏对所有手机屏幕都具有移动响应性?
- r - 如何为 ggplot 中的显着 p 值添加星号?
- angular - Heroku Angular 应用程序部署:加载资源失败:服务器响应状态为 404(未找到)
- javascript - React Stateful Class Component:使用“this.setState”更新状态的属性,不起作用。没有错误。状态不变
- python - 一个简单的操作需要永远的时间