Go 中函數指標允許將函數作為值儲存。建立方式包括直接賦值和使用 func 關鍵字。透過 () 運算子呼叫。實戰應用範例:計算數組中奇數元素的和,透過函數指標傳遞奇數判斷函數。
在Go 語言中,函數是一個值,可以使用變數來儲存。函數指標是一種指向函數的變數。它使用*
前綴表示,語法如下:
type FuncType func(args) (returns) var funcPtr *FuncType
函數指標可以透過以下幾種方式建立:
##直接賦值:
var add = func(a, b int) int { return a + b } var addPtr = &add
#使用func 關鍵字:
var addPtr = func(a, b int) int { return a + b }
() 運算符,如下:
result := (*addPtr)(1, 2) // 等于 add(1, 2)實戰案例:
計算數組中奇數元素的和
package main import "fmt" // 奇数函数 func isOdd(x int) bool { return x%2 != 0 } // 计算奇数和 func sumOdds(arr []int, odd func(int) bool) int { sum := 0 for _, v := range arr { if odd(v) { sum += v } } return sum } func main() { arr := []int{1, 2, 3, 4, 5, 6, 7} total := sumOdds(arr, isOdd) fmt.Println("奇数元素的和:", total) }輸出:
奇数元素的和: 16
以上是golang函數指標的原理與應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!