fmt.Printf formatteren tutorial en spiekbrief

yourbasic.org/golang
Brief tegels vormen de word-formaat
  • Basis
    • Printf
    • Sprintf (opmaak zonder printen)
    • Zoeken fmt fouten met dierenarts
  • Cheat sheet
    • Standaard formaten en type
    • Integer (streepje, base, teken)
    • Teken (geciteerd, Unicode)
    • Boolean (true/false)
    • Aanwijzer (hex)
    • Float (streepje, de precisie, de wetenschappelijke notatie)
    • String of byte-segment (offerte, streepje, hex)
    • Speciale waarden

Basics

met het pakket Go fmt kunt u getallen en tekenreeksen opmaken die zijn opgevuld met spaties of nullen,in verschillende bases en met optionele aanhalingstekens.

u verzendt een sjabloonstring die de tekst bevat die u wilt formatteren plus enkele annotatiewerkwoorden die de fmt functieshow vertellen om de achterliggende argumenten te formatteren.

Printf

in dit voorbeeld formatteert en schrijft fmt.Printf naar standaarduitvoer:

fmt.Printf("Binary: %b\%b", 4, 5) // Prints `Binary: 1001`
  • de sjabloonstring is "Binary: %b\%b",
  • het annotatiewerkwoord %b formatteert een getal in binair, en
  • de speciale waarde \ is een backslash.

als speciaal geval geeft het werkwoord %%, dat geen argument gebruikt, een procentteken:

fmt.Printf("%d %%", 50) // Prints `50 %`

Sprintf (formaat zonder af te drukken)

gebruik fmt.Sprintfom een tekenreeks te formatteren zonder af te drukken:

s := fmt.Sprintf("Binary: %b\%b", 4, 5) // s == `Binary: 1001`

fmt-fouten zoeken met vet

als u probeert deze onjuiste regel code

fmt.Printf("Binary: %b\%b", 4) // An argument to Printf is missing.

te compileren en uit te voeren, zult u merken dat het programma zal compileren en dan

Binary: 100\%!b(MISSING)

afdrukken om dit type fouten vroegtijdig op te vangen, kunt u het vet – commando gebruiken-het kan calls vinden waarvan de argumenten niet overeenkomen met de opmaakstring.

$ go vet example.goexample.go:8: missing argument for Printf("%b"): format reads arg 2, have only 1 args

spiekbrief

standaardformaten en type

  • waarde: int64{0, 1}
Indeling Werkwoord Beschrijving
%v Standaard formaat
int64{0, 1} %#v Go-syntaxis formaat
int64 %T Het type van de waarde

Integer (streepje, base, teken)

  • Waarde: 15
Indeling Werkwoord Beschrijving
15 %d Basis 10
+15 %+d Altijd weer aanmelden
␣␣15 %4d Pad met spaties (breedte 4, rechts uitgelijnd)
15␣␣ %-4d Pad met spaties (breedte 4, links uitgelijnd)
0015 %04d Pad met nullen (breedte 4)
1111 %b Basis 2
17 %o Basis 8
f %x Base 16, kleine letters
F %X Base 16, hoofdletters
0xf %#x Base-16, met toonaangevende 0x

Karakter (geciteerd, Unicode)

  • Waarde: 65 (Unicode letter A)
Indeling Werkwoord Beschrijving
Een %c Teken
‘Een’ %q Geciteerd karakter
U+0041 %U Unicode
U+0041 ‘Een’ %#U Unicode met karakter

Boolean (true/false)

Gebruik %t opmaken van een boolean als true of false.

Pointer (hex)

gebruik %p om een pointer in basis 16-notatie te formatteren met voorloop 0x.

Float (streepje, de precisie, de wetenschappelijke notatie)

  • Waarde: 123.456
Indeling Werkwoord Beschrijving
1.234560 e+02 %e Wetenschappelijke notatie
123.456000 %f Decimale punt, geen exponent
123.46 %.2f Standaard breedte, precisie 2
␣␣123.46 %8.2f Breedte 8, precisie 2
123.456 %g Exponent als nodig, de nodige cijfers alleen

String of byte-segment (offerte, streepje, hex)

  • Waarde: "café"
Indeling Werkwoord Beschrijving
café %s Normaal string
␣␣café %6s Breedte 6, rechts uitvullen
café␣␣ %-6s Breedte 6, links uitvullen
“café” %q teken
636166c3a9 %x Hex dump van byte-waarden
63 61 66 c3 a9 % x Hex dump met spaties

Speciale waarden

Waarde Beschrijving
\a U+0007 waarschuwing of bel
\b U+backspace-0008
\ U+005c backslash
\t U+0009 horizontale tab
\n U+000A regel of newline
\f U+000C form feed
\r U+000D vervoer return
\v u + 000b verticaal tabblad

willekeurige waarden kunnen gecodeerd worden met backslash escapes en kunnen gebruikt worden in elke "" string.

Er zijn vier verschillende formaten:

  • \x gevolgd door twee hexadecimale cijfers,
  • \ gevolgd door precies drie octale cijfers,
  • \u gevolgd door precies vier hexadecimale cijfers,
  • \U gevolgd door precies acht hexadecimale cijfers.

de escapes \u en \U vertegenwoordigen Unicode-Codepunten.

fmt.Println("\caf\u00e9") // Prints \café

verder lezen

40+ praktische tips voor tekenreeksen

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.