- Noțiuni de bază
- Printf
- Sprintf (format fără imprimare)
- găsiți erori fmt cu vet
- Cheat sheet
- formate implicite și tip
- Integer (liniuță, bază, semn)
- caracter (citat, Unicode)
- Boolean (adevărat/fals)
- Pointer (hex)
- Float (liniuță, precizie, notație științifică)
- string sau octet felie (citat, liniuță, Hex)
- valori speciale
- Noțiuni de bază
- Printf
- Sprintf (format fără imprimare)
- găsiți erori fmt cu vet
- Cheat sheet
- formate implicite și tip
- întreg (liniuță, bază, semn)
- caracter (citat, Unicode)
- Boolean (adevărat/fals)
- Pointer (hex)
- Float (liniuță, precizie, notație științifică)
- String sau octet felie (citat, liniuță, hex)
- valori speciale
- lecturi suplimentare
Noțiuni de bază
cu pachetul Go fmt
puteți formata numere și șiruri căptușite cu spații sau zerouri,în diferite baze și cu ghilimele opționale.
trimiteți un șir de șabloane care conține textul pe care doriți să îl formatațiplus unele verbe de adnotare care spun funcția fmt
cum să formatați argumentele finale.
Printf
în acest exemplu, fmt.Printf
formate și scrie la ieșire standard:
fmt.Printf("Binary: %b\%b", 4, 5) // Prints `Binary: 1001`
- șirul șablon este
"Binary: %b\%b"
, - verbul adnotare
%b
formate un număr în binar, și - valoarea specială
\
este un backslash.
ca un caz special, verbul %%
, care nu consumă niciun argument, produce un semn procentual:
fmt.Printf("%d %%", 50) // Prints `50 %`
Sprintf (format fără imprimare)
utilizați fmt.Sprintf
pentru a formata un șir fără a-l imprima:
s := fmt.Sprintf("Binary: %b\%b", 4, 5) // s == `Binary: 1001`
găsiți erori fmt cu vet
dacă încercați să compilați și să rulați această linie incorectă de cod
fmt.Printf("Binary: %b\%b", 4) // An argument to Printf is missing.
veți găsi că programul va compila, și apoi imprima
Binary: 100\%!b(MISSING)
pentru a prinde acest tip de erori devreme, puteți utilizacomanda vet – se poate findcalls ale căror argumente nu se aliniază cu șirul de format.
$ go vet example.goexample.go:8: missing argument for Printf("%b"): format reads arg 2, have only 1 args
Cheat sheet
formate implicite și tip
- valoare:
int64{0, 1}
Format | Verb | descriere |
---|---|---|
%v |
format implicit | |
int64{0, 1} | %#v |
Go-format sintaxă |
int64 | %T |
tipul valorii |
întreg (liniuță, bază, semn)
- valoare:
15
Format | Verb | descriere |
---|---|---|
15 | %d |
baza 10 |
+15 | %+d |
arată întotdeauna semn |
␣␣15 | %4d |
Pad cu spații (lățime 4, dreapta justificată) |
15␣␣ | %-4d |
Pad cu spații (lățime 4, stânga justificată) |
0015 | %04d |
Pad cu zerouri (lățime 4) |
1111 | %b |
baza 2 |
17 | %o |
baza 8 |
f | %x |
baza 16, minusculă |
F | %X |
baza 16, majusculă |
0xf | %#x |
baza 16, cu 0x de conducere |
caracter (citat, Unicode)
- valoare:
65
(Unicode litera A)
Format | Verb | descriere |
---|---|---|
A | %c |
caracter |
‘A’ | %q |
caracterul Citat |
U+0041 | %U |
Unicode |
U + 0041 ‘A’ | %#U |
Unicode cu caracter |
Boolean (adevărat/fals)
utilizați %t
pentru a formata un boolean ca true
sau false
.
Pointer (hex)
utilizați %p
pentru a formata un pointer în baza 16 notație cu lider 0x
.
Float (liniuță, precizie, notație științifică)
- valoare:
123.456
Format | Verb | descriere |
---|---|---|
1.234560 e+02 | %e |
notație științifică |
123.456000 | %f |
punct zecimal, fără exponent |
123.46 | %.2f |
lățimea de neîndeplinire a obligațiilor de plată, precizie 2 |
␣␣123.46 | %8.2f |
Lățime 8, precizie 2 |
123.456 | %g |
Exponent după cum este necesar, numai cifrele necesare |
String sau octet felie (citat, liniuță, hex)
- valoare:
"café"
Format | Verb | Descriere |
---|---|---|
café | %s |
Simplu string |
␣␣café | %6s |
Lățime 6, nu justifica |
café␣␣ | %-6s |
Lățime 6, stânga justifica |
„café” | %q |
șir Citat |
636166c3a9 | %x |
Hex dump byte valori |
63 61 66 c3 a9 | % x |
Hex dump cu spații |
valori speciale
valoare | descriere |
---|---|
\a |
u + 0007 alertă sau clopot |
\b |
U + 0008 backspace |
\ |
u + 005c bară oblică inversă |
\t |
U + 0009 fila orizontală |
\n |
u + 000a linie de alimentare sau newline |
\f |
u + 000c formă de alimentare |
\r |
u + 000d transport întoarcere |
\v |
U + 000b tab vertical |
valorile arbitrare pot fi codificate cu escapes backslash andcan fi folosit în orice ""
șir literal.
există patru formate diferite:
-
\x
urmat de exact două cifre hexazecimale, -
\
urmat de exact trei cifre octale, -
\u
urmat de exact patru cifre hexazecimale, -
\U
urmat de exact opt cifre hexazecimale.
evadările \u
și \U
reprezintă puncte de cod Unicode.
fmt.Println("\caf\u00e9") // Prints \café
lecturi suplimentare
40+ sfaturi practice șir