ホームページ >バックエンド開発 >Golang >Go マップの値として関数を割り当てて呼び出すにはどうすればよいですか?

Go マップの値として関数を割り当てて呼び出すにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-09 18:34:15775ブラウズ

How Can I Assign and Call Functions as Values in a Go Map?

Go マップ内のキーへの関数の割り当て

Go では、カスタム関数を定義し、それらをマップ内のキーに値として割り当てることができます。これにより、指定されたキーに基づいて関数を動的に実行できます。

これを実現するには、map[string]func(...) タイプのマップを作成できます。ここで、キーは文字列、値は関数。ただし、提供されたコードは、Go でサポートされていない構文を使用しようとしています。

これを修正するには、次のコードを使用します。

func a(param string) {
    fmt.Println("Function a called with param:", param)
}

func main() {
    m := map[string]func(string) {
        "a_func": a,
    }

    for key, value := range m {
        if key == "a_func" {
            value("test")
        }
    }
}

この例では、

  • map[string]func(string) は、単一の文字列を取る文字列キーと関数を含むマップを宣言します引数。
  • m 変数は、キー "a_func" と a 関数への参照である値を使用してマップを初期化します。
  • 範囲ループはマップを反復処理し、関連付けられた関数を呼び出します。 「a_func」キーを使用し、引数として「test」を渡します。

提供されたコード例のインターフェースのタイプは次のとおりであることに注意してください。{}必要はなく、 func(...).

に簡略化できます。

以上がGo マップの値として関数を割り当てて呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。