Maison >développement back-end >Golang >Explorez les différences entre les différentes fonctions du package golang fmt

Explorez les différences entre les différentes fonctions du package golang fmt

PHPz
PHPzoriginal
2023-04-11 10:42:04616parcourir

Le package golang fmt est une bibliothèque standard couramment utilisée dans le langage Go. Il fournit divers mécanismes de formatage des entrées et des sorties. Dans le package fmt, il existe de nombreuses fonctions différentes qui accomplissent différentes tâches. Cet article explorera les différences entre les différentes fonctions du package fmt.

1. La différence entre Println et Printf
Println et Printf sont deux fonctions qui génèrent du contenu, mais il existe quelques différences fondamentales entre elles.

Println génère une série de valeurs sur la sortie standard dans un format spécifié. La signature de fonction de Println est :

func Println(a ...interface{}) (n int, err error)

où, a...interface{} représente n'importe quel nombre de données de n'importe quel type. Il n'y a pas de formatage supplémentaire lors de l'utilisation de Println pour la sortie, tel que :

fmt.Println("Hello", "World!", 1, 2, 3)  //输出:Hello World! 1 2 3

Printf génère la chaîne formatée sur la sortie standard. La signature de fonction de Printf est :

func Printf(format string, a ...interface{}) (n int, err error)

où, format est le format de sortie, et a...interface{} représente n'importe quel nombre de données de n'importe quel type. Printf formatera et concaténera la chaîne formatée et les données à sortir. Comme indiqué ci-dessous :

fmt.Printf("My name is %s, and I am %d years old\n", "Jack", 25)   //输出:My name is Jack, and I am 25 years old

2. La différence entre Sprintf et Fprintf
Sprintf et Fprintf sont également des fonctions de sortie formatées, mais il existe quelques différences entre elles.

Sprintf formate la chaîne formatée en une variable de chaîne. La signature de fonction de Sprintf est :

func Sprintf(format string, a ...interface{}) string

où format est le format de sortie, et a...interface{} représente n'importe quel nombre de données de n'importe quel type. Sprintf formatera et concaténera la chaîne formatée et les données à afficher, et renverra le résultat sous forme de chaîne. Comme indiqué ci-dessous :

s := fmt.Sprintf("My name is %s, and I am %d years old\n", "Jack", 25)
fmt.Println(s) //输出:My name is Jack, and I am 25 years old

Fprintf formate la chaîne formatée dans un fichier. La signature de fonction de Fprintf est :

func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)

Parmi eux, w io.Writer représente l'emplacement cible de la sortie, format est le format de sortie et a...interface{} représente n'importe quel nombre de données de n'importe quel type. Fprintf formatera et concaténera la chaîne formatée et les données à afficher, et affichera le résultat dans le fichier spécifié. Comme indiqué ci-dessous :

f, err := os.Create("output.txt")
if err != nil {
    return err
}
fmt.Fprintf(f, "My name is %s, and I am %d years old\n", "Jack", 25)

3. Résumé
Les quatre fonctions ci-dessus sont toutes des fonctions couramment utilisées dans le package golang fmt, mais il existe certaines différences entre elles. Println et Printf sont deux fonctions qui génèrent du contenu directement, tandis que Printf doit formater les chaînes et les données avant de les afficher. Sprintf et Fprintf sont tous deux des fonctions de sortie formatées. Sprintf génère la chaîne formatée dans une variable de chaîne, tandis que Fprintf génère la chaîne formatée dans le fichier spécifié. La maîtrise du contenu ci-dessus peut nous aider à mieux utiliser ces fonctions pour le travail de développement quotidien.

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