在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新手,我可能在这里误解了一些东西。 这是一个错字吗?
答案 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返回类型的函数。