Comment l'itération dynamique dans les packages n'est pas possible dans Go
Dans une récente enquête de programmation Go, un utilisateur a exprimé le désir de parcourir dynamiquement un package et ses méthodes. Bien que Python autorise une telle fonctionnalité, Go n'offre pas cette fonctionnalité.
Cette décision de conception découle du processus de compilation de Go, qui inclut uniquement les fonctions et variables explicitement référencées dans le code. Par conséquent, parcourir l'ensemble complet des symboles au sein d'un package n'est pas réalisable, car certains peuvent être absents de l'exécutable final.
Approche alternative : tableau de types personnalisés
Bien que l'itération directe du package ne soit pas disponible dans Go, une approche alternative consiste à créer un tableau contenant des instances des types souhaités. Ce tableau peut ensuite être itéré pour accéder aux méthodes pertinentes.
Par exemple, dans l'exemple de calcul fourni, un tableau personnalisé pourrait être construit :
var methods = [...]Calc{ &calculator.Add{}, &calculator.Sub{}, &calculator.Mul{}, &calculator.Div{}, }
Par la suite, les méthodes peuvent être itérées :
for _, method := range methods { method.First(x) method.Second(x) }
Cette méthode élimine le besoin d'affectations d'objets répétitives et fournit une méthode plus concise et maintenable solution.
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!