將函數對應到字串鍵可以是 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中文網其他相關文章!