Maison > développement back-end > Golang > Comment ajouter efficacement des arguments à un wrapper de fonction variadique dans Go ?

Comment ajouter efficacement des arguments à un wrapper de fonction variadique dans Go ?

Patricia Arquette
Libérer: 2024-11-02 01:29:02
original
559 Les gens l'ont consulté

How to Efficiently Append Arguments to a Variadic Function Wrapper in 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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal