Maison >développement back-end >Golang >Comment puis-je imprimer plusieurs valeurs de retour à partir d'une fonction Go à l'aide de fmt.Printf() ?

Comment puis-je imprimer plusieurs valeurs de retour à partir d'une fonction Go à l'aide de fmt.Printf() ?

DDD
DDDoriginal
2024-12-10 13:45:16585parcourir

How Can I Print Multiple Return Values from a Go Function Using fmt.Printf()?

Passer plusieurs valeurs de retour aux fonctions variadiques

Dans Go, une fonction peut renvoyer plusieurs valeurs. Cependant, affecter directement les valeurs de retour d'une fonction à une chaîne de format dans un appel à fmt.Println() n'est pas possible par défaut.

Approche utilisant fmt.Printf()

Pour y parvenir Pour obtenir le comportement souhaité, fmt.Printf() doit être utilisé à la place de fmt.Println(). Cependant, la transmission de paramètres supplémentaires en plus de l'appel de fonction n'est pas autorisée par la spécification pour les appels de fonctions variadiques.

Utilisation d'une fonction wrapper

Pour contourner cette restriction, une fonction wrapper peut être utilisée. La fonction wrap() prend plusieurs valeurs et les renvoie sous forme de tranche de valeurs d'interface{}. Cela nous permet de transmettre les valeurs de retour de toute fonction avec au moins une valeur de retour à fmt.Printf().

Exemple

package main

import (
    "fmt"
)

// Wrapper function to convert multiple values to a slice of interface{}
func wrap(vs ...interface{}) []interface{} {
    return vs
}

func main() {
    fmt.Printf("1: %v\n", wrap(oneInt())...)
    fmt.Printf("1: %v, 2: %v\n", wrap(twoInts())...)
    fmt.Printf("1: %v, 2: %v, 3: %v\n", wrap(threeStrings())...)
}

func oneInt() int { return 1 }

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

func threeStrings() (string, string, string) { return "1", "2", "3" }

Sortie

1: 1
1: 1, 2: 2
1: 1, 2: 2, 3: 3

Conclusion

En utilisant la fonction wrap(), il est possible de passer plusieurs valeurs de retour d'une fonction à une fonction variadique comme fmt.Printf(). Cela fournit un moyen simple et pratique de formater et d'imprimer les résultats d'un appel de fonction.

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