加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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的命名函数,这就是你在第二种情况下出错的原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读