- grunderna
- Printf
- Sprintf (format utan utskrift)
- hitta fmt-fel med vet
- fusklapp
- standardformat och typ
- heltal (strecksats, bas, tecken)
- tecken (citerad, Unicode)
- Boolesk (sant/falskt)
- pekare (hex)
- Float (strecksats, precision, vetenskaplig notation)
- sträng eller byte skiva (citat, strecksats, Hex)
- specialvärden
- grunderna
- Printf
- Sprintf (format utan utskrift)
- hitta FMT-fel med vet
- fusklapp
- standardformat och typ
- heltal (strecksats, bas, tecken)
- karaktär (citerad, Unicode)
- Boolean (true/false)
- pekare (hex)
- Float (strecksats, precision, vetenskaplig notation)
- sträng eller byte skiva (citat, strecksats, hex)
- särskilda värden
- vidare läsning
grunderna
med GO fmt
packageyou kan formatera siffror och strängar vadderade med mellanslag eller nollor,i olika baser, och med valfria citat.
du skickar in en Mallsträng som innehåller texten du vill formatera plus några annoteringsverb som anger funktionen fmt
hur du formaterar de efterföljande argumenten.
Printf
i det här exemplet formaterar och skriver fmt.Printf
till standardutmatning:
fmt.Printf("Binary: %b\%b", 4, 5) // Prints `Binary: 1001`
- mallsträngen är
"Binary: %b\%b"
, - annoteringsverbet
%b
formaterar ett tal i binärt, och - specialvärdet
\
är ett backslash.
som ett speciellt fall ger verbet %%
, som inte förbrukar något argument, ett procenttecken:
fmt.Printf("%d %%", 50) // Prints `50 %`
Sprintf (format utan utskrift)
använd fmt.Sprintf
för att formatera en sträng utan att skriva ut den:
s := fmt.Sprintf("Binary: %b\%b", 4, 5) // s == `Binary: 1001`
hitta FMT-fel med vet
om du försöker kompilera och köra den här felaktiga kodrad
fmt.Printf("Binary: %b\%b", 4) // An argument to Printf is missing.
du kommer att upptäcka att programmet kommer att kompilera och sedan skriva ut
Binary: 100\%!b(MISSING)
för att fånga denna typ av fel tidigt kan du användavet – kommandot-det kan hittasamtal vars argument inte stämmer överens med formatsträngen.
$ go vet example.goexample.go:8: missing argument for Printf("%b"): format reads arg 2, have only 1 args
fusklapp
standardformat och typ
- värde:
int64{0, 1}
Format | Verb | beskrivning |
---|---|---|
%v |
standardformat | |
int64{0, 1} | %#v |
Go-syntaxformat |
int64 | %T |
typ av värde |
heltal (strecksats, bas, tecken)
- värde:
15
Format | Verb | beskrivning |
---|---|---|
15 | %d |
bas 10 |
+15 | %+d |
Visa alltid tecken |
␣␣15 | %4d |
Pad med mellanslag (bredd 4, rätt motiverad) |
15␣␣ | %-4d |
Pad med mellanslag (bredd 4, vänster motiverad) |
0015 | %04d |
Pad med nollor (bredd 4) |
1111 | %b |
bas 2 |
17 | %o |
bas 8 |
f | %x |
bas 16, gemener |
F | %X |
bas 16, versaler |
0xf | %#x |
bas 16, med ledande 0x |
karaktär (citerad, Unicode)
- värde:
65
(Unicode bokstaven A)
Format | Verb | beskrivning |
---|---|---|
A | %c |
karaktär |
’A’ | %q |
citerad karaktär |
U+0041 | %U |
Unicode |
U + 0041 ’A’ | %#U |
Unicode med tecken |
Boolean (true/false)
använd %t
för att formatera en boolean som true
eller false
.
pekare (hex)
använd %p
för att formatera en pekare i BAS 16 notation med ledande 0x
.
Float (strecksats, precision, vetenskaplig notation)
- värde:
123.456
Format | Verb | beskrivning |
---|---|---|
1.234560 e+02 | %e |
vetenskaplig notation |
123.456000 | %f |
Decimal, ingen exponent |
123.46 | %.2f |
standard bredd, precision 2 |
␣␣123.46 | %8.2f |
bredd 8, precision 2 |
123.456 | %g |
Exponent efter behov, endast nödvändiga siffror |
sträng eller byte skiva (citat, strecksats, hex)
- värde:
"café"
Format | Verbet | Beskrivning |
---|---|---|
café | %s |
Vanlig sträng |
␣␣café | %6s |
Bredd 6, högerjusterar |
café␣␣ | %-6s |
Bredd 6, superscript |
”café” | %q |
sträng |
636166c3a9 | %x |
Hex dump av byte-värden |
63 61 66 c3 a9 | % x |
Hex dumpa med mellanslag |
särskilda värden
värde | beskrivning |
---|---|
\a |
u + 0007 alert eller klocka |
\b |
u + 0008 backspace |
\ |
u + 005c backslash |
\t |
u + 0009 horisontell flik |
\n |
u + 000A linjematning eller ny linje |
\f |
u + 000C formulärmatning |
\r |
u + 000D vagn tillbaka |
\v |
u + 000b vertikal flik |
godtyckliga värden kan kodas med backslash escapes ochkan användas i någon ""
sträng bokstavlig.
det finns fyra olika format:
-
\x
följt av exakt två hexadecimala siffror, -
\
följt av exakt tre oktala siffror, -
\u
följt av exakt fyra hexadecimala siffror, -
\U
följt av exakt åtta hexadecimala siffror.
flyktningarna \u
och \U
representerar Unicode-Kodpunkter.
fmt.Println("\caf\u00e9") // Prints \café
vidare läsning
40+ praktiska strängtips