Lorsque vous écrivez du code Go, vous trouverez le formatage de chaîne très utile dans de nombreuses situations. Vous analysez peut-être des entrées ou créez une sortie plus complexe qu'une simple concaténation. Vous travaillez peut-être avec des types autres que des chaînes simples.

Le formatage des chaînes dans Go utilise le processus et la syntaxe familiers de la fonction printf, que les langages de Java à Haskell utilisent également.

Go fournit diverses méthodes de formatage des chaînes dans le fmt forfait. Vous pouvez utiliser des fonctions et des verbes pour le formatage des chaînes en fonction de l'opération ou des entrées que vous souhaitez formater.

Formatage des chaînes dans Go

Les fonctions du package fmt sont similaires à leurs homologues, comme la fonction printf dans bash ou C Go tire ses verbes de formatage de C.

Tu utilises verbes de formatage de chaîne comme espaces réservés pour vos valeurs de variable dans une chaîne contenante. Vous pouvez ensuite passer cette chaîne de formatage à une fonction comme

instagram viewer
Imprimerf, ainsi que les valeurs correspondant à ces espaces réservés.

Vous ne pouvez pas utiliser de verbes de formatage de chaîne avec le Imprimer et Imprimerln méthodes. Vous pouvez les utiliser avec des méthodes telles que Imprimerf et Sprintf.

fmt. Println("Ceci est un test %v", 90)
fmt. Printf("Ceci est un test %v", 90)

La %v verb imprime n'importe quelle valeur dans son format par défaut. La Imprimerln La méthode ne reconnaît pas les verbes et imprime tous les arguments qu'elle reçoit. La Imprimerf et Sprintf les deux fonctions formatent le premier argument de chaîne que vous leur transmettez.

Fonctions de formatage de chaînes dans le package fmt

Mise en forme des chaînes dans le langage de programmation Go vous oblige à utiliser une fonction de formatage de chaîne et un verbe. La fonction renvoie la chaîne formatée et les verbes sont les espaces réservés pour les entrées de la chaîne.

La Imprimerf La méthode formate l'entrée en fonction du spécificateur de format et renvoie le nombre d'octets écrits ou d'erreurs.

fmt. Printf("Ceci est un test %v", 90)

Classiquement, vous n'aurez pas à vous soucier des erreurs lorsque vous utilisez le Imprimerf méthode.

La Sprintf formate selon le format spécifié et renvoie le résultat sous forme de chaîne.

var résultat = fmt. Sprintf("Ceci est un test %v", 90)

La Fprintf formate la chaîne et l'écrit dans un écrivain (méthodes qui implémentent la io. Écrivain interface)

// écrit les données sur la sortie standard
résultat, err = fmt. Fprintf (écrivain, "Ceci est un test %v", 90)

La Scanf La méthode numérise à partir d'un lecteur et formate selon le format spécifié.

var prendre chaîne de caractères

// lit les données de la chaîne donnée
readString := chaînes. NewReader("Ceci est un test")

lire, euh := fmt. Fscanf (lecteur, "%v", &take)

Dans ce cas, le Scanf décode la chaîne du lecteur dans le prendre variable, et la lis La variable contient le résultat du format.

Les verbes de formatage de chaîne

Go fournit de nombreux verbes de formatage que vous pouvez utiliser avec les fonctions de formatage de chaîne.

Il existe des verbes généraux de formatage de chaîne comme le %v verbe dans les exemples de fonctions de formatage de chaîne. Vous pouvez utiliser les verbes généraux de formatage de chaîne pour formater n'importe quel type de données.

Vous pouvez utiliser le %#v verbe pour sortir n'importe quelle valeur, le %+v pour les structures, le %T verbe pour le type de toute valeur, et le %% verbe pour aucune valeur.

taper n'importe quel structure { 
Nom chaîne de caractères
âge entier
est connecté bourdonner
}

var instance = n'importe quel {
nom: "John Doe",
âge: 34,
est connecté: vrai,
}

var résultat = fmt. Sprintf("Ceci est un structure exemple de formatage %+v", instance)
fmt. Println (résultat)

La résultat La variable contient la chaîne formatée de la structure instanciée. Si vous l'imprimez, il devrait ressembler à ceci :

Ceci est un exemple de mise en forme de struct {name: John Doe age: 34 isLoggedIn :vrai}

Il existe des verbes pour formater des types de données natifs Go spécifiques, y compris des canaux et des pointeurs.

Verbe Fonctionnalité
%t booléens.
%ré int, int8, etc.
%d, %#x si imprimé avec %#v uint, uint8, etc.
%g float32, complexe64, etc.
%s chaîne de caractères.
%p chan.
%P aiguille.

Vous voudrez vous assurer que vous ne faites pas d'erreurs avec les verbes car ils sont sensibles à la casse, comme le chanson et aiguille verbes.

Formatage des entiers et des flottants

Il existe des verbes de formatage de chaîne pour formater des entiers dans bases différentes. Vous pouvez utiliser n'importe lequel de ces verbes pour formater des entiers

Verbe Fonctionnalité
%b socle 2
%c le caractère représenté par le point de code Unicode correspondant.
%ré base 10.
%o base 8.
%O base 8 avec préfixe 0o.
%q un littéral de caractère entre guillemets simples échappé en toute sécurité avec la syntaxe Go.
%X base 16, avec des lettres minuscules pour a-f.
%X base 16, avec des lettres majuscules pour A-F.
%U Format Unicode: U+1234; identique à "U+%04X".

Par exemple, vous pouvez formater un entier en utilisant la %ré verbe:

var résultat = fmt. Sprintf("Ceci est un exemple de formatage d'entier %d", 90)
fmt. Println (résultat)

Ce sont les verbes pour formater les nombres à virgule flottante.

Verbe Fonctionnalité
%b notation scientifique sans décimale avec exposant une puissance de deux, à la manière de strconv. FormatFloat avec le format 'b', par ex. -123456p-78
%e notation scientifique, par ex. -1.234456e+78
%E point décimal mais pas d'exposant, par exemple 123,456
%F point décimal mais pas d'exposant, par exemple 123,456
%F synonyme de %f.
%g %e pour les grands exposants, %f sinon. Précision ci-dessous.
%G %E pour les grands exposants, %F sinon
%X notation hexadécimale (avec une puissance décimale de deux exposants), par exemple, -0x1.23abcp+20.
%X notation hexadécimale majuscule, par ex. -0X1.23ABCP+20.

Voici un exemple de formatage d'un point décimal sans exposant avec le %F verbe.

var résultat = fmt. Sprintf("Ceci est un exemple de formatage en virgule flottante %f", 432.9503)
fmt. Println (résultat)

Vous pouvez toujours utiliser les verbes généraux si vous n'êtes pas sûr du type.

Formatage des chaînes et des octets

Les types de chaînes et de tranches d'octets sont assez similaires dans Go. Ce sont les drapeaux pour formater les chaînes et les octets.

Verbe Fonctionnalité
%s les octets non interprétés de la chaîne ou de la tranche
%q une chaîne entre guillemets échappée en toute sécurité avec la syntaxe Go
%X base 16, minuscule, deux caractères par octet
%X base 16, majuscule, deux caractères par octet

Voici un exemple de formatage d'une chaîne avec le %s verbe.

var note = "exemple"
var résultat = fmt. Sprintf("Ceci est un chaîne de caractères exemple de formatage %s", score)
fmt. Println (résultat)

Le package fmt est essentiel pour la programmation Python

La fmt contient la plupart des fonctionnalités dont vous aurez besoin pour le formatage des chaînes. Go fournit également un cordes package pour la manipulation de chaînes et un Journal package qui peut formater des chaînes pour la journalisation.

La fmt package a des fonctions qui implémentent le io. Écrivain et io. Lecteur interfaces. Vous le trouverez utile pour de nombreux cas d'utilisation tels que la création d'applications Web et de ligne de commande.