函数类型变量声明 - 官方golang文档页面上的拼写错误

时间:2017-09-22 11:33:50

标签: go

在golang.org博客here,我们有语法来声明一个函数类型变量

f func(func(int,int) int, int) func(int, int) int

我不明白,因为它应该如下,即没有最后的'int'

f func(func(int,int) int, int) func(int, int)

我是Go新手,我可能在这里误解了一些东西。 这是一个错字吗?

2 个答案:

答案 0 :(得分:3)

两者都是正确的。

此:

f func(func(int,int) int, int) func(int, int) int

是一个函数f,它占用2个参数,第一个是func(int,int) int类型,第二个是int,并返回一个函数,它有2个int参数和一个int返回类型。

此:

f func(func(int,int) int, int) func(int, int)

大致相同,但返回函数类型只有2 int个参数,并且不会返回任何内容。

因此,文档中没有拼写错误。

答案 1 :(得分:2)

不,这不是一个错字。

f func(func(int,int) int, int) func(int, int) int

这意味着该函数返回一个具有2个int参数和一个int返回类型的函数。