Invoquer des structures et leurs méthodes par nom dans Go
Lorsque vous travaillez avec des structures, il peut y avoir des cas où vous devez invoquer une méthode spécifique dynamiquement par son nom. Cela peut être utile dans les situations où le nom de la méthode est déterminé au moment de l'exécution ou lorsque vous souhaitez généraliser le code pour travailler avec différentes structures.
Contrairement à d'autres langages, Go ne fournit pas de mécanisme simple pour appeler des méthodes par leur noms. Cependant, en utilisant le pouvoir de réflexion, il est possible d’obtenir cette fonctionnalité. Voici comment :
Par exemple, en considérant ce qui suit struct et méthode :
type MyStruct struct { // Fields here } func (p *MyStruct) MyMethod() { fmt.Println("My statement.") }
Vous pouvez appeler cette méthode dynamiquement comme suit :
structValue := reflect.ValueOf(&myStruct) method := structValue.MethodByName("MyMethod") method.Call([]reflect.Value{})
Ce code affichera "Ma déclaration". à la console.
Remarque : Il est important de s'assurer que la structure et la méthode que vous essayez d'appeler sont visibles et accessibles dans le package ou la portée actuelle.
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!