溫馨提示×

Go語言函數(shù)如何進(jìn)行高階函數(shù)

小樊
81
2024-11-08 14:13:14
欄目: 編程語言

在Go語言中,高階函數(shù)是指接受一個或多個函數(shù)作為參數(shù),或者返回一個函數(shù)作為結(jié)果的函數(shù)。要實現(xiàn)這個功能,你可以使用匿名函數(shù)(閉包)或者函數(shù)類型。下面是一些示例:

  1. 使用匿名函數(shù)(閉包):
package main

import (
	"fmt"
)

// 高階函數(shù),接受一個整數(shù)和一個匿名函數(shù)作為參數(shù)
func add(a int, f func(int) int) int {
	return a + f(a)
}

func main() {
	// 使用匿名函數(shù)作為參數(shù)
	addFive := add(5, func(x int) int {
		return x + 5
	})
	fmt.Println(addFive) // 輸出:10
}
  1. 使用函數(shù)類型:
package main

import (
	"fmt"
)

// 定義一個函數(shù)類型
type Function func(int) int

// 高階函數(shù),接受一個整數(shù)和一個函數(shù)類型作為參數(shù)
func add(a int, f Function) int {
	return a + f(a)
}

func main() {
	// 使用函數(shù)類型作為參數(shù)
	addFive := add(5, Function(func(x int) int {
		return x + 5
	}))
	fmt.Println(addFive) // 輸出:10
}

在這兩個示例中,我們定義了一個名為add的高階函數(shù),它接受一個整數(shù)和一個函數(shù)作為參數(shù)。在main函數(shù)中,我們使用匿名函數(shù)和函數(shù)類型分別調(diào)用了add函數(shù)。

0