Golang中的函数声明
发布时间:2020-12-16 09:28:42 所属栏目:大数据 来源:网络整理
导读:似乎有两种不同的方式在Golang中声明一个函数,如下所示: package mainimport "fmt"var someFunc = func(arg string) { fmt.Println(arg)}func main() { someFunc("Hello")} 以上工作.但是,以下不起作用: package mainimport "fmt"var someFunc = func(arg
似乎有两种不同的方式在Golang中声明一个函数,如下所示:
package main import "fmt" var someFunc = func(arg string) { fmt.Println(arg) } func main() { someFunc("Hello") } 以上工作.但是,以下不起作用: package main import "fmt" var someFunc = func(arg string) { fmt.Println(arg) } var main = func() { someFunc("Hello") } 它会抱怨: runtime.main: undefined: main.main 那么func someFunc()和var someFunc = func()之间的区别是什么? 我发现这个的原因可能是因为我编写了很多Javascript代码.在Go中,我很少看到人们声明像var someFunc = func()这样的函数.在这两个中,我们可以说哪一个比另一个更正确吗? 解决方法
当你这样做
var someFunc = func(arg string) {} 您正在为somefunc变量分配匿名函数.你也可以这样写: somefunc := func(arg string) {} 创建函数的另一种方法是创建一个命名函数: func somefunc(arg string) {} 命名函数只能在顶层声明,而匿名函数可以在任何地方声明. main有一个特殊的含义,在main包中必须有一个名为main的命名函数,这就是你在第二种情况下出错的原因. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |