我是Go的新手,我正在阅读几段代码,并注意到很多代码已初始化为
type Foo func() foo
其中Foo
是类型名称,foo
是返回类型.我想知道这是什么意思?
在Go中,函数是一流的类型; 它们可以是其他函数的参数,从函数返回,或用作struct
字段,map
值,切片元素等.定义一个命名函数类型可以更容易地执行此操作,因为您可能会在任何已看到此模式的代码中看到它.您还可以在这些类型上定义方法(是的,函数类型可以在其上定义方法!),例如使用net/http
's' HandlerFunc
.