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

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

Susan Sarandon
リリース: 2024-12-09 18:34:15
オリジナル
795 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート