我是Go的新手,我正在浏览几段书面代码,并注意到其中许多代码都将函数初始化为
type Foo func() foo
其中Foo
是类型名称,而foo
是返回类型。我想知道这是什么意思?
答案 0 :(得分:7)
在Go中,函数是一流的类型;它们可以是其他函数的参数,从函数返回的参数,也可以用作struct
字段,map
值,切片元素等。定义命名函数类型使执行此操作更加容易,就像您在任何看到此模式的代码中可能会看到的那样。您还可以在这些类型上定义方法(是的,函数类型上可以定义方法!),例如使用net/http
的{{1}}。