- 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
- Printf
- Sprintf (format sans impression)
- Trouver des erreurs fmt avec vet
- Feuille de triche
- Formats et type 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
- Lectures complémentaires
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