fmt.Printf formátování tutorial a tahák

yourbasic.org/golang
Dopis dlaždice tvořit slovo formát
  • Základy
    • Printf
    • Sprintf (formát, bez tisku)
    • Najít fmt chyby s veterináři
  • Cheat sheet
    • Výchozí formát a typ
    • Integer (odrážka, základní, znak)
    • Charakter (citace, Unicode)
    • Boolean (true/false)
    • Ukazatel (hex)
    • Float (odrážky, přesnost, vědecká notace)
    • String nebo byte plátek (citace, odrážky, hex)
    • Speciální hodnoty

základy

s balíčkem Go fmt můžete formátovat čísla a řetězce vyplněné mezerami nebo nulami, v různých základnách a s volitelnými uvozovkami.

odeslání šablony řetězec, který obsahuje text, který chcete formatplus některé anotace slovesa, které říkají fmt functionshow do formátu koncové argumenty.

Printf

v tomto příkladu fmt.Printf formátuje a zapisuje na standardní výstup:

fmt.Printf("Binary: %b\%b", 4, 5) // Prints `Binary: 1001`
  • šablony řetězec je "Binary: %b\%b",
  • anotace slovesa %b formátuje číslo v binární, a
  • speciální hodnota \ je zpětné lomítko.

Jako speciální případ, sloveso %%, který spotřebovává žádný argument, produkuje znak procenta:

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

Sprintf (formát, bez tisku)

Použití fmt.Sprintfformátovat řetězec bez tisku to:

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

Najít fmt chyby s veterináři

Pokud se pokusíte zkompilovat a spustit tento nesprávný řádek kódu

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

zjistíte, že program bude kompilovat, a pak vytisknout

Binary: 100\%!b(MISSING)

chytit tento typ chyby brzy, můžete použít vet příkaz – to může findcalls, jejichž argumenty nejsou v souladu s řetězec formátu.

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

tahák

výchozí formáty a typ

  • hodnota: int64{0, 1}
Formát Sloveso Popis
%v Výchozí formát
int64{0, 1} %#v Go-syntaxe formátu
int64 %T typ hodnoty

Integer (odrážka, základní, znamení)

  • Hodnota: 15
Formát Sloveso Popis
15 %d Základní 10
+15 %+d Vždy ukázat, znamení
␣␣15 %4d Pad s mezerami (šířka 4, právo oprávněné)
15␣␣ %-4d Pad s mezerami (šířky 4, levé oprávněné)
0015 %04d Podložka s nulami (šířka 4)
1111 %b Základní 2
17 %o Základní 8
f %x Základní 16, malá
F %X Základní 16, velká písmena
0xf %#x Základní 16, s předními 0x

Charakter (citace, Unicode)

  • Hodnota: 65 (Unicode písmeno)
Formát Sloveso Popis
A %c Charakter
‚A‘ %q Citoval charakter
U+0041 %U Unicode
U+0041 “ %#U Unicode s charakterem

Boolean (true/false)

Použití %t k formátování boolean true nebo false.

ukazatel (hex)

použijte %p pro formátování ukazatele v zápisu základny 16 s předním 0x.

Float (odrážky, přesnost, vědecká notace)

  • Hodnota: 123.456
Formát Sloveso Popis
1.234560 e+02 %e Vědecká notace
123.456000 %f Desetinnou čárku, ne exponent
123.46 %.2f Výchozí šířka, přesnost 2
␣␣123.46 %8.2f Šířka 8, přesnost 2
123.456 %g Exponent jako potřebné, nutné pouze číslice

Řetězec nebo byte plátek (citace, odrážky, hex)

  • Hodnota: "café"
Formát Sloveso Popis
café %s Prostý řetězec
␣␣café %6s Šířka 6, správně odůvodnit
café␣␣ %-6s Šířka 6, vlevo ospravedlnit
„café“ %q řetězec v uvozovkách
636166c3a9 %x Hex dump byte hodnoty
63 61 66 c3 a9 % x Hex skládka s mezerami

Speciální hodnoty

Hodnota Popis
\a U+0007 upozornění nebo bell
\b U+0008 backspace
\ U+005c zpětné lomítko
\t U+0009 horizontální tab
\n U+000A line feed, nebo newline
\f U+000C formě krmiva
\r U+000D kočár návrat
\v U+000b vertikální tab

Libovolné hodnoty mohou být kódovány s backslash escapes mohou být použity v jakékoliv "" řetězcový literál.

k Dispozici jsou čtyři různé formáty:

  • \x následuje přesně dvě šestnáctkové číslice,
  • \ následuje přesně tři osmičkové číslice,
  • \u následuje přesně čtyři hexadecimální číslice,
  • \U následuje přesně osm hexadecimálních číslic.

escapy \u a \U představují Kódové body Unicode.

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

Další čtení

40+ praktické string tipy

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.