Maison > Article > développement back-end > Comment ajouter efficacement des arguments à un wrapper de fonction variadique dans Go ?
Ajout efficace au wrapper de fonctions variadiques
Les fonctions variadiques dans Go, telles que fmt.Println, vous permettent de transmettre un nombre variable d'arguments . Cependant, lors de l'utilisation d'une fonction wrapper à des fins de débogage, l'ajout d'arguments supplémentaires peut entraîner des problèmes d'allocation de mémoire.
Dans les exemples fournis, les deux premières tentatives d'extension de la fonction fmt.Fprintln avec des arguments supplémentaires entraînent des erreurs. La troisième méthode consiste à construire manuellement une nouvelle tranche, ce qui introduit une surcharge.
Pour éviter la réallocation de mémoire, vous pouvez utiliser la fonction append :
<code class="go">func Debug(a ...interface{}) { if debug { fmt.Fprintln(out, append([]interface{}{prefix, sep}, a...)...) } }</code>
Cette one-liner prend la tranche existante de arguments (a) et l'étend avec les éléments supplémentaires (préfixe et sep) en utilisant append. La tranche résultante est ensuite transmise à fmt.Fprintln, garantissant une expansion efficace des arguments sans avoir besoin d'une allocation de mémoire explicite.
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!