Maison >développement back-end >Golang >Comment transmettre plusieurs valeurs de retour à une fonction variadique dans Go ?

Comment transmettre plusieurs valeurs de retour à une fonction variadique dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-27 19:53:10722parcourir

How to Pass Multiple Return Values to a Variadic Function in Go?

Passer plusieurs valeurs de retour à une fonction variadique

Problème :

Vous avez un Go fonction qui renvoie deux entiers et souhaite imprimer les deux valeurs en utilisant le formatage de chaîne dans un appel fmt.Println(). Cependant, cette approche n'est pas prise en charge par défaut dans Go.

Solution :

Bien que vous ne puissiez pas transmettre directement plusieurs valeurs de retour à fmt.Println(), vous peut utiliser une astuce pour obtenir le même résultat avec fmt.Printf() :

  1. Créez une fonction utilitaire, wrap(), qui prend nombre variable d'entrées et renvoie une tranche de []interface{}.
  2. Appelez wrap() avec les valeurs de retour de votre fonction, en les transmettant en tant que paramètres individuels.
  3. Passez la tranche résultante à fmt.Printf() comme valeur du paramètre variadique ....

Voici un exemple :

func wrap(vs ...interface{}) []interface{} {
    return vs
}

func twoInts() (int, int) {
    return 1, 2
}

func main() {
    fmt.Printf("first= %d and second = %d", wrap(twoInts()...)...)
}

Cette approche vous permet de transmettre plusieurs valeurs de retour à une fonction variadique, vous permettant de les imprimer en utilisant le formatage de chaîne dans fmt.Printf().

Remarque :

  • fmt.Println() peut toujours être utilisé avec des fonctions qui renvoient au moins une valeur, car elle attribue automatiquement les valeurs de retour excédentaires à son paramètre variadique.
  • La fonction utilitaire wrap() peut être généralisée pour gérer des fonctions avec n'importe quel nombre de valeurs de retour.
  • Pour plus d'informations, reportez-vous aux questions connexes sur plusieurs valeurs dans des contextes à valeur unique et renvoyant des valeurs « ok » de type carte dans les fonctions Go.

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!

Déclaration:
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