fmt.Tutoriel de formatage Printf et feuille de triche

yourbasic.org/golang
 Tuiles de lettres formant le format word
  • Bases
    • Printf
    • Sprintf (format sans impression)
    • Trouver des erreurs fmt avec vet
  • Feuille de triche
    • Formats et types par défaut
    • Entier (retrait, base, signe)
    • Caractère (entre guillemets, Unicode)
    • Booléen (vrai/ faux)
    • Pointeur (hexadécimal)
    • Float (retrait, précision, notation scientifique)
    • Tranche de chaîne ou d’octet (citation, retrait, hexadécimal)
    • Valeurs spéciales

Basics

Avec le pack Go fmt vous pouvez formater des nombres et des chaînes avec des espaces ou des zéros, dans différentes bases et avec des guillemets facultatifs.

Vous soumettez une chaîne de modèle contenant le texte que vous souhaitez formaterplus quelques verbes d’annotation qui indiquent à la fonction fmt comment formater les arguments de fin.

Printf

Dans cet exemple, fmt.Printf formate et écrit sur la sortie standard:

fmt.Printf("Binary: %b\%b", 4, 5) // Prints `Binary: 1001`
  • la chaîne de modèle est "Binary: %b\%b",
  • le verbe d’annotation %b formate un nombre en binaire, et
  • la valeur spéciale \ est une barre oblique inverse.

En cas particulier, le verbe %%, qui ne consomme aucun argument, produit un signe de pourcentage:

fmt.Printf("%d %%", 50) // Prints `50 %`

Sprintf (format sans impression)

Utilisez fmt.Sprintf pour formater une chaîne sans l’imprimer:

s := fmt.Sprintf("Binary: %b\%b", 4, 5) // s == `Binary: 1001`

Trouver des erreurs fmt avec vet

Si vous essayez de compiler et d’exécuter cette ligne de code incorrecte

fmt.Printf("Binary: %b\%b", 4) // An argument to Printf is missing.

vous constaterez que le programme compilera, puis imprimera

Binary: 100\%!b(MISSING)

Pour attraper ce type d’erreurs tôt, vous pouvez utiliser la commande vet – elle peut trouver des appels dont les arguments ne sont pas alignés avec la chaîne de format.

$ go vet example.goexample.go:8: missing argument for Printf("%b"): format reads arg 2, have only 1 args

Feuille de triche

Formats et type par défaut

  • Valeur: int64{0, 1}
Format Verbe Description
%v Format par défaut
int64{0, 1} %#v Format de syntaxe go
int64 %T Le type de la valeur

Entier (retrait, base, signe)

  • Valeur: 15
Format Verbe Description
15 %d Base 10
+15 %+d Toujours montrer signe
␣␣15 %4d Pad avec espaces (largeur 4, justifié à droite)
15␣␣ %-4d Pad avec espaces (largeur 4, justifié à gauche)
0015 %04d Pad avec des zéros (largeur 4)
1111 %b Base 2
17 %o Base 8
d %x Base 16, minuscule
D %X Base 16, majuscule
0xf %#x Base 16, avec tête 0x

Caractère (entre guillemets, Unicode)

  • Valeur: 65 (Lettre Unicode A)
Format Verbe Description
A %c Caractère
‘ A’ %q Caractère cité
U+0041 %U Unicode
U+0041’D’ %#U Unicode avec caractère

Booléen (vrai/ faux)

Utilisez %t pour formater un booléen en tant que true ou false.

Pointeur (hexadécimal)

Utilisez %p pour formater un pointeur en notation base 16 avec 0x en tête.

Float (retrait, précision, notation scientifique)

  • Valeur: 123.456
Format Verbe Description
1.234560 e+02 %e Notation scientifique
123.456000 %f Point décimal, pas d’exposant
123.46 %.2f Largeur par défaut, précision 2
␣␣123.46 %8.2f Largeur 8, précision 2
123.456 %g Exposant au besoin, chiffres nécessaires uniquement

Tranche de chaîne ou d’octet (citation, retrait, hexadécimal)

  • Valeur: "café"
Format Verbe Description
café %s Chaîne simple
␣␣ café %6s Largeur 6, justifiez à droite
café␣␣ %-6s Largeur 6, justifier à gauche
 » café » %q Chaîne entre guillemets
636166c3a9 %x Vidage hexadécimal des valeurs d’octets
63 61 66 c3 d9 % x Hex vidage avec espaces

Valeurs spéciales

Valeur Description
\a U+0007 alerte ou cloche
\b U+0008 retour arrière
\ Barre oblique inverse U+005c
\t U+0009 onglet horizontal
\n U+000A avance de ligne ou saut de ligne
\f Flux de formulaire U+000C
\r Chariot U+000D retour
\v Languette verticale U+000b

Les valeurs arbitraires peuvent être codées avec des échappements antislash etpeut être utilisé dans n’importe quel littéral de chaîne "".

Il existe quatre formats différents:

  • \x suivi de exactement deux chiffres hexadécimaux,
  • \ suivi de exactement trois chiffres octaux,
  • \u suivi d’exactement quatre chiffres hexadécimaux,
  • \U suivi d’exactement huit chiffres hexadécimaux.

Les échappements \u et \U représentent des points de code Unicode.

fmt.Println("\caf\u00e9") // Prints \café

Lectures complémentaires

40+ embouts de cordes pratiques

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.