首頁  >  文章  >  後端開發  >  golang函數指標的原理與應用

golang函數指標的原理與應用

PHPz
PHPz原創
2024-04-29 11:15:01928瀏覽

Go 中函數指標允許將函數作為值儲存。建立方式包括直接賦值和使用 func 關鍵字。透過 () 運算子呼叫。實戰應用範例:計算數組中奇數元素的和,透過函數指標傳遞奇數判斷函數。

golang函數指標的原理與應用

Go 語言函數指標的原理和應用

函數指標的原理

在Go 語言中,函數是一個值,可以使用變數來儲存。函數指標是一種指向函數的變數。它使用* 前綴表示,語法如下:

type FuncType func(args) (returns)
var funcPtr *FuncType

建立函數指標

函數指標可以透過以下幾種方式建立:

  1. ##直接賦值:

    var add = func(a, b int) int {
        return a + b
    }
    var addPtr = &add

  2. #使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn