Golang中的函数声明

Golang中的函数声明,第1张

概述似乎有两种不同的方式在Golang中声明一个函数,如下所示: package mainimport "fmt"var someFunc = func(arg string) { fmt.Println(arg)}func main() { someFunc("Hello")} 以上工作.但是,以下不起作用: package mainimport "fmt"var so 似乎有两种不同的方式在Golang中声明一个函数,如下所示:

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中的函数声明所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1267749.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存