- Grunnleggende
- Printf
- Sprintf (format uten utskrift)
- Finn fmt-feil med vet
- Cheat sheet
- Standardformater og type
- Heltall (innrykk, base, tegn)
- tegn (sitert, Unicode)
- Boolsk (sann/usann)
- Peker (hex)
- Flyte (innrykk, presisjon, vitenskapelig notasjon)
- streng eller byte skive (sitat, innrykk, hex)
- Spesielle verdier
- Grunnleggende
- Printf
- Sprintf (format uten utskrift)
- Finn fmt-feil med vet
- Cheat sheet
- Standardformater og type
- Heltall (innrykk, base, tegn)
- Karakter (sitert, Unicode)
- Boolsk (sann/usann)
- Peker (hex)
- Flyte (innrykk, presisjon, vitenskapelig notasjon)
- String eller byte skive (sitat, innrykk, hex)
- Spesielle verdier
- Videre lesing
Grunnleggende
Med Go fmt
– pakkendu kan formatere tall og strenger polstret med mellomrom eller nuller, i forskjellige baser og med valgfrie anførselstegn.
du sender inn en malstreng som inneholder teksten du vil formatereplus noen merknadsverb som forteller funksjonen fmt
slik formaterer du de etterfølgende argumentene.
Printf
i dette eksemplet fmt.Printf
formater og skriver til standard utdata:
fmt.Printf("Binary: %b\%b", 4, 5) // Prints `Binary: 1001`
- malstrengen er
"Binary: %b\%b"
, - annotasjonsverbet
%b
formaterer et tall i binær, og - den spesielle verdien
\
er en omvendt skråstrek.
som et spesielt tilfelle produserer verbet %%
, som ikke bruker noe argument, et prosenttegn:
fmt.Printf("%d %%", 50) // Prints `50 %`
Sprintf (format uten utskrift)
Bruk fmt.Sprintf
for å formatere en streng uten å skrive den ut:
s := fmt.Sprintf("Binary: %b\%b", 4, 5) // s == `Binary: 1001`
Finn fmt-feil med vet
hvis du prøver å kompilere og kjøre denne feilkoden
fmt.Printf("Binary: %b\%b", 4) // An argument to Printf is missing.
du vil oppdage at programmet vil kompilere, og deretter skrive ut
Binary: 100\%!b(MISSING)
for å fange denne typen feil tidlig, kan du brukevet-kommandoen-den kan finnesamtaler 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
Cheat sheet
Standardformater og type
- Verdi:
int64{0, 1}
Format | Verb | Beskrivelse |
---|---|---|
%v |
Standard format | |
int64{0, 1} | %#v |
Go-syntax format |
int64 | %T |
typen av verdien |
Heltall (innrykk, base, tegn)
- Verdi:
15
Format | Verb | Beskrivelse |
---|---|---|
15 | %d |
Base 10 |
+15 | %+d |
vis alltid tegn |
␣␣15 | %4d |
Pad med mellomrom (bredde 4, rett begrunnet) |
15␣␣ | %-4d |
Pad med mellomrom (bredde 4, venstre begrunnet) |
0015 | %04d |
Pad med nuller (bredde 4) |
1111 | %b |
Base 2 |
17 | %o |
Base 8 |
f | %x |
Base 16, små bokstaver |
F | %X |
Base 16, store bokstaver |
0xf | %#x |
Base 16, med ledende 0x |
Karakter (sitert, Unicode)
- Verdi:
65
(Unicode bokstav A)
Format | Verb | Beskrivelse |
---|---|---|
A | %c |
Karakter |
‘A’ | %q |
Sitert karakter |
U+0041 | %U |
Unicode |
U+0041 ‘A’ | %#U |
Unicode med karakter |
Boolsk (sann/usann)
Bruk %t
til å formatere en boolsk som true
eller false
.
Peker (hex)
bruk %p
til å formatere en peker i base 16 notasjon med ledende 0x
.
Flyte (innrykk, presisjon, vitenskapelig notasjon)
- Verdi:
123.456
Format | Verb | Beskrivelse |
---|---|---|
1.234560 e+02 | %e |
Vitenskapelig notasjon |
123.456000 | %f |
Desimaltegn, ingen eksponent |
123.46 | %.2f |
Standard bredde, presisjon 2 |
␣␣123.46 | %8.2f |
Bredde 8, presisjon 2 |
123.456 | %g |
Eksponent etter behov, bare nødvendige sifre |
String eller byte skive (sitat, innrykk, hex)
- Verdi:
"café"
Formatet | Verbet | Beskrivelse |
---|---|---|
café | %s |
Vanlig string |
␣␣café | %6s |
Bredde 6, rett rettferdiggjøre |
café␣␣ | %-6s |
Bredde 6, venstre rettferdiggjøre |
«café» | %q |
Sitert string |
636166c3a9 | %x |
Hex-dump av byte-verdier |
63 61 66 c3 a9 | % x |
Hex dump med mellomrom |
Spesielle verdier
Verdi | Beskrivelse |
---|---|
\a |
u + 0007 alert eller bell |
\b |
U+0008 backspace |
\ |
U+005c skråstrek |
\t |
U+0009 horisontal fane |
\n |
U + 000A linjemating eller linjeskift |
\f |
U + 000C skjema feed |
\r |
U + 000d vogn tilbake |
\v |
U + 000b vertikal fane |
Vilkårlige verdier kan kodes med skråstrek rømming ogkan brukes i noen ""
streng bokstavelig.
det er fire forskjellige formater:
-
\x
etterfulgt av nøyaktig to heksadesimale sifre, -
\
etterfulgt av nøyaktig tre oktale sifre, -
\u
etterfulgt av nøyaktig fire heksadesimale sifre, -
\U
etterfulgt av nøyaktig åtte heksadesimale sifre.
escapes \u
og \U
representerer Unicode-kodepunkter.
fmt.Println("\caf\u00e9") // Prints \café
Videre lesing
40+ praktiske strengtips