fmt.Printf formatering tutorial og jukse ark

yourbasic.org/golang
 Bokstavbrikker som danner ordformatet
  • 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

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

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.