package mainimport "fmt"var someFunc = func(arg string) { fmt.Println(arg)}func main() { someFunc("Hello")}
以上工作.但是,以下不起作用:
package mainimport "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的命名函数,这就是你在第二种情况下出错的原因.
总结以上是内存溢出为你收集整理的Golang中的函数声明全部内容,希望文章能够帮你解决Golang中的函数声明所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)