首頁 >後端開發 >Golang >如何將函數作為值儲存在 Go Map 中?

如何將函數作為值儲存在 Go Map 中?

DDD
DDD原創
2024-12-14 02:50:10174瀏覽

How Can I Store Functions as Values in a Go Map?

在 Go Map 中儲存函數

在 Go 中,map 是一種儲存鍵值對的類型。鍵和值可以是任何類型。就您而言,您希望將函數儲存在地圖中。但是,您的程式碼不起作用,因為函數類型不能用作映射中的鍵。

要解決此問題,您可以使用介面類型來表示函數。介面類型定義了類型必須實作以滿足介面的一組方法。在這種情況下,您可以建立一個介面類型來表示一個以字串作為參數的函數。

import "fmt"

// A function type that takes a string as a parameter.
type StringFunc func(string)

// A map that stores functions that take a string as a parameter.
var funcs map[string]StringFunc

// A function that takes a string as a parameter.
func a(p string) {
    fmt.Println("function a parameter:", p)
}

// Main function.
func main() {
    // Create a map that stores functions that take a string as a parameter.
    funcs = make(map[string]StringFunc)

    // Add the 'a' function to the map.
    funcs["a"] = a

    // Call the 'a' function from the map.
    funcs["a"]("hello")
}

以上是如何將函數作為值儲存在 Go Map 中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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