我试图了解使用匿名函数调用函数的方法。而且我不明白为什么golang中需要匿名函数。例如,方法之间有什么区别
package main
import "fmt"
func main() {
var i, j int
fmt.Scan(&i, &j)
fmt.Println(sum(i, j))
}
func sum(i, j int) int {
return i + j
}
从方法
package main
import "fmt"
func main() {
var i, j int
fmt.Scan(&i, &j)
fmt.Println(do(i, j, sum))
}
func sum(i, j int) int {
return i + j
}
func do(i, j int, f func(int, int) int) int {
return f(i, j)
}
在第二个选项中,除了调用 sum() 函数的明显复杂性以及从中抽象之外,我还没有看到重点。什么是第二种方法可以做而第一种方法不能做的事情?当然,我很高兴我可以实现这两种方法,但如果第二种方法更复杂,为什么我需要第二种方法呢?
这是一个简单的例子。过滤函数使用另一个函数来过滤列表中的值。