3 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個贊
Go對于函數(shù)指針的語法與C和C ++不同。Go博客上對此有很好的解釋??梢岳斫?,Go的作者認(rèn)為C的函數(shù)指針語法與常規(guī)指針非常相似,因此簡而言之,他們決定使函數(shù)指針明確。即更具可讀性。
這是我寫的一個例子。請注意,如何在fp中定義參數(shù),calculate()下面的另一個示例向您展示如何將函數(shù)指針變成類型并在函數(shù)中使用它(帶注釋的calculate函數(shù))。
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參數(shù)定義為一個接受兩個int并返回一個int的函數(shù)。這與Mue提到的有些相同,但是顯示了不同的用法示例。
- 3 回答
- 0 關(guān)注
- 311 瀏覽
添加回答
舉報