首頁 > 後端開發 > Golang > 如何正確定義和使用Go中的函數映射?

如何正確定義和使用Go中的函數映射?

Barbara Streisand
發布: 2024-12-17 19:03:10
原創
879 人瀏覽過

How to Correctly Define and Use a Map of Functions in Go?

Go 函數映射

將函數對應到字串鍵可以是 Go 中組織和選擇方法的有用工具。然而,一個常見的障礙是確保正確的語法和輸入。讓我們探索如何在 Go 中有效地定義和利用函數映射。

提供的程式碼嘗試建立一個帶有指向函數的字串鍵的映射。但是, m := map[string] func {...} 中使用的語法不正確。要定義函數指標映射,正確的語法是 m := map[string]interface{}{...}。

此外,對映射鍵使用單引號 '' 是無效的。字串鍵應使用雙引號 ""。

為了示範一個工作範例,請考慮以下程式碼:

package main

import "fmt"

func f(p string) {
    fmt.Println("function f parameter:", p)
}

func g(p string, q int) {
    fmt.Println("function g parameters:", p, q)
}

func main() {
    m := map[string]interface{}{
        "f": f,
        "g": g,
    }
    for k, v := range m {
        switch k {
        case "f":
            v.(func(string))("astring")
        case "g":
            v.(func(string, int))("astring", 42)
        }
    }
}
登入後複製

這裡建立了一個映射 m,其中每個鍵都是一個字串,對應的值是函數指標。 switch 語句在使用所需參數呼叫函數之前檢查鍵並將值轉換為適當的函數類型。這種方法允許根據提供的金鑰動態選擇和執行函數。

以上是如何正確定義和使用Go中的函數映射?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板