fmt.Printf formatering tutorial og snyde ark

yourbasic.org / golang
 brev fliser danner ordet format
  • 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

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.Sprintftil 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 %ptil 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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.