- grundlæggende
- Printf
- Sprintf (format uden udskrivning)
- Find FMT-fejl med dyrlæge
- snydeark
- standardformater og type
- heltal (indrykning, base, tegn)
- karakter (Citeret, Unicode)
- boolsk (sand/falsk)
- Pointer (sekskant)
- Float (indrykning, præcision, videnskabelig notation)
- streng eller byte skive (citat, led, sekskant)
- særlige værdier
- grundlæggende
- Printf
- Sprintf (format uden udskrivning)
- Find FMT – fejl med vet
- snydeark
- standardformater og type
- heltal (indrykning, base, tegn)
- tegn (Citeret, Unicode)
- boolsk (sand/falsk)
- Pointer (sekskant)
- flyde (indrykning, præcision, videnskabelig notation)
- streng eller byte skive (citat, LED, sekskant)
- særlige værdier
- yderligere læsning
grundlæggende
med Go fmt
pakkedu kan formatere tal og strenge polstret med mellemrum eller nuller,i forskellige baser og med valgfri citater.
du sender en skabelonstreng, der indeholder den tekst, du vil formatereplus nogle annotationsverb, der fortæller funktionen fmt
Sådan formateres de efterfølgende argumenter.
Printf
i dette eksempel fmt.Printf
formater og skriver til standard output:
fmt.Printf("Binary: %b\%b", 4, 5) // Prints `Binary: 1001`
- skabelonstrengen er
"Binary: %b\%b"
, - annotationsverbet
%b
formaterer et tal i binært, og - den specielle værdi
\
er en omvendt skråstreg.
som et specielt tilfælde producerer verbet %%
, som ikke bruger noget argument, et procenttegn:
fmt.Printf("%d %%", 50) // Prints `50 %`
Sprintf (format uden udskrivning)
brug fmt.Sprintf
til at formatere en streng uden at udskrive den:
s := fmt.Sprintf("Binary: %b\%b", 4, 5) // s == `Binary: 1001`
Find FMT – fejl med vet
hvis du forsøger at kompilere og køre denne forkerte kodelinje
fmt.Printf("Binary: %b\%b", 4) // An argument to Printf is missing.
du vil opdage, at programmet vil kompilere, og derefter udskrive
Binary: 100\%!b(MISSING)
for at fange denne type fejl tidligt, kan du brugevetkommandoen-den kan findeopkald, hvis argumenter ikke stemmer overens med formatstrengen.
$ go vet example.goexample.go:8: missing argument for Printf("%b"): format reads arg 2, have only 1 args
snydeark
standardformater og type
- værdi:
int64{0, 1}
Format | Verb | beskrivelse |
---|---|---|
%v |
standardformat | |
int64{0, 1} | %#v |
go-syntaksformat |
int64 | %T |
typen af værdien |
heltal (indrykning, base, tegn)
- værdi:
15
Format | Verb | beskrivelse |
---|---|---|
15 | %d |
Base 10 |
+15 | %+d |
Vis altid tegn |
␣␣15 | %4d |
Pad med mellemrum (bredde 4, højre berettiget) |
15␣␣ | %-4d |
Pad med mellemrum (bredde 4, venstre berettiget) |
0015 | %04d |
Pad med nuller (bredde 4) |
1111 | %b |
Base 2 |
17 | %o |
Base 8 |
f | %x |
Base 16, små bogstaver |
F | %X |
Base 16, store bogstaver |
0f | %#x |
Base 16, med førende 0 |
tegn (Citeret, Unicode)
- værdi:
65
(Unicode bogstav A)
Format | Verb | beskrivelse |
---|---|---|
A | %c |
tegn |
‘A’ | %q |
Citeret karakter |
U+0041 | %U |
Unicode |
U + 0041 ‘A’ | %#U |
Unicode med karakter |
boolsk (sand/falsk)
brug %t
til at formatere en boolsk som true
eller false
.
Pointer (sekskant)
brug %p
til at formatere en pointer i base 16 notation med førende 0x
.
flyde (indrykning, præcision, videnskabelig notation)
- værdi:
123.456
Format | Verb | beskrivelse |
---|---|---|
1.234560 e+02 | %e |
videnskabelig notation |
123.456000 | %f |
decimaltegn, ingen eksponent |
123.46 | %.2f |
standard bredde, præcision 2 |
␣␣123.46 | %8.2f |
bredde 8, præcision 2 |
123.456 | %g |
eksponent efter behov, kun nødvendige cifre |
streng eller byte skive (citat, LED, sekskant)
- værdi:
"café"
Format | Verbum | Beskrivelse |
---|---|---|
café | %s |
Plain streng |
␣␣café | %6s |
Bredde 6, ret begrunde, |
café␣␣ | %-6s |
Bredde 6, venstrestillet |
“café” | %q |
Citeret streng |
636166c3a9 | %x |
Hex dump til byte-værdier |
63 61 66 c3 a9 | % x |
Hex dump med mellemrum |
særlige værdier
værdi | beskrivelse |
---|---|
\a |
u + 0007 alarm eller klokke |
\b |
u + 0008 backspace |
\ |
U + 005c backslash |
\t |
u + 0009 vandret fane |
\n |
u + 000A line feed eller ny linje |
\f |
u + 000c form feed |
\r |
u + 000d vogn tilbage |
\v |
u + 000b lodret fane |
vilkårlige værdier kan kodes med backslash escapes ogkan bruges i enhver ""
streng bogstavelig.
der er fire forskellige formater:
-
\x
efterfulgt af præcis to seksadecimale cifre, -
\
efterfulgt af nøjagtigt tre oktale cifre, -
\u
efterfulgt af nøjagtigt fire seksadecimale cifre, -
\U
efterfulgt af præcis otte seksadecimale cifre.
escapes \u
og \U
repræsenterer Unicode-kodepunkter.
fmt.Println("\caf\u00e9") // Prints \café
yderligere læsning
40+ praktiske snor tips