Go語言基礎之高階函式
阿新 • • 發佈:2021-10-16
Go語言基礎之高階函式
高階函式分為函式作為引數和函式作為返回值兩部分。
一、函式作為引數
函式可以作為引數:
func add(x, y int) int {
return x + y
}
func calc(x, y int, op func(int, int) int) int {
return op(x, y)
}
func main() {
ret2 := calc(10, 20, add)
fmt.Println(ret2) //30
}
二、函式作為返回值
函式也可以作為返回值:
func do(s string) (func(int, int) int, error) { switch s { case "+": return add, nil case "-": return sub, nil default: err := errors.New("無法識別的操作符") return nil, err } }
三、函式放入切片
func main{
type typeFunc func(int, int) int
var name []typeFunc = []typeFunc{add1}
for _, key := range name {
fmt.Println(key(2, 4)) // 6
}
}
func add1(x, y int) int {
return x + y
}
四、總結
- 函式可以當作函式引數傳參
- 函式可以作為返回值