3 回答
TA贡献1777条经验 获得超3个赞
Go对于函数指针的语法与C和C ++不同。Go博客上对此有很好的解释。可以理解,Go的作者认为C的函数指针语法与常规指针非常相似,因此简而言之,他们决定使函数指针明确。即更具可读性。
这是我写的一个例子。请注意,如何在fp中定义参数,calculate()下面的另一个示例向您展示如何将函数指针变成类型并在函数中使用它(带注释的calculate函数)。
package main
import "fmt"
type ArithOp func(int, int)int
func main() {
calculate(Plus)
calculate(Minus)
calculate(Multiply)
}
func calculate(fp func(int, int)int) {
ans := fp(3,2)
fmt.Printf("\n%v\n", ans)
}
// This is the same function but uses the type/fp defined above
//
// func calculate (fp ArithOp) {
// ans := fp(3,2)
// fmt.Printf("\n%v\n", ans)
// }
func Plus(a, b int) int {
return a + b
}
func Minus(a, b int) int {
return a - b
}
func Multiply(a,b int) int {
return a * b
}
该fp参数定义为一个接受两个int并返回一个int的函数。这与Mue提到的有些相同,但是显示了不同的用法示例。
- 3 回答
- 0 关注
- 282 浏览
添加回答
举报