老师好。这里一直不理解。
来源:7-1 函数式编程

慕移动0311372
2020-06-04
fmt.Printf(“0+1+…+%d = %d”,i, a(i))
我的问题是,这里为什么要用a(i)而不能用adder(i)
写回答
1回答
-
adder的类型是:
func adder() func(int) int
go语言中函数也可以作为一种类型,和整数啊,字符串啊,地位是一样的。
这个adder是个函数,它的返回类型是func(int) int。也就是说它返回一个函数,返回的函数的类型是func(int) int。
因此我的例子里,a:=adder(),用a去接收函数adder的返回值。因此a也是一个函数,类型是func(int) int。正好,我们可以使用a(i)来调用a,i是参数,调用的结果就是这里打印的和。
312020-06-11
相似问题