Stockage de fonctions dans une carte Go
Dans Go, une carte est un type qui stocke des paires clé-valeur. Les clés et les valeurs peuvent être de n’importe quel type. Dans votre cas, vous souhaitez stocker des fonctions dans une carte. Cependant, votre code ne fonctionne pas car un type de fonction ne peut pas être utilisé comme clé dans une carte.
Pour contourner ce problème, vous pouvez utiliser un type d'interface pour représenter une fonction. Un type d'interface définit un ensemble de méthodes qu'un type doit implémenter pour satisfaire l'interface. Dans ce cas, vous pouvez créer un type d'interface qui représente une fonction qui prend une chaîne comme paramètre.
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") }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!