Foo类型的点func()foo

时间:2018-07-05 19:44:27

标签: go

我是Go的新手,我正在浏览几段书面代码,并注意到其中许多代码都将函数初始化为

type Foo func() foo

其中Foo是类型名称,而foo是返回类型。我想知道这是什么意思?

1 个答案:

答案 0 :(得分:7)

在Go中,函数是一流的类型;它们可以是其他函数的参数,从函数返回的参数,也可以用作struct字段,map值,切片元素等。定义命名函数类型使执行此操作更加容易,就像您在任何看到此模式的代码中可能会看到的那样。您还可以在这些类型上定义方法(是的,函数类型上可以定义方法!),例如使用net/http的{​​{1}}。