Itérer dynamiquement un package
Problème :
Un programmeur Go avec une expérience en Python rencontre de la verbosité en créant une calculatrice simple avec des fonctionnalités extensibles (addition, soustraction, etc.). Ils recherchent un moyen de parcourir dynamiquement toutes les méthodes de leur package de calculatrice pour simplifier le code et ajouter des fonctionnalités sans effort.
Réponse :
Go n'offre pas de mécanisme simple. pour introspecter les packages ou parcourir dynamiquement leur contenu. Le compilateur inclut uniquement les fonctions et variables dans l'exécutable qui sont directement référencées. Les fonctions qui ne sont jamais appelées sont omises.
Solution alternative :
Au lieu d'itérer dynamiquement dans le package, vous pouvez envisager de créer un tableau contenant des objets des types souhaités pour opérer. Cela vous permet de parcourir un ensemble prédéfini d'opérations de calculatrice :
type Calc interface { First(x int) int Second(x int) int } calculator := []Calc{ &calculator.Add{}, &calculator.Sub{}, &calculator.Mul{}, &calculator.Div{}, } for _, calc := range calculator { x := 10 fmt.Println(calc.First(x)) fmt.Println(calc.Second(x)) }
En utilisant un tableau, vous pouvez parcourir des méthodes de calculatrice spécifiques sans avoir besoin d'introspecter dynamiquement le package. L'ordre dans lequel les méthodes sont exécutées est également défini à l'avance.
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!