Go マップへの関数の保存
Go では、マップはキーと値のペアを保存するタイプです。キーと値は任意のタイプにすることができます。あなたの場合、関数をマップに保存したいと考えています。ただし、関数型をマップ内のキーとして使用できないため、コードは機能しません。
これを回避するには、インターフェイス型を使用して関数を表すことができます。インターフェイス型は、インターフェイスを満たすために型が実装する必要があるメソッドのセットを定義します。この場合、文字列をパラメータとして受け取る関数を表すインターフェイス タイプを作成できます。
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 マップに値として保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。