- podstawy
- Printf
- Sprintf (format bez drukowania)
- Znajdź błędy fmt w vet
- Ściągawka
- domyślne formaty i typ
- liczba całkowita (wcięcie, podstawa, znak)
- znak (cytowany, Unicode)
- Boolean (prawda/fałsz)
- wskaźnik (hex)
- Float (wcięcie, precyzja, notacja naukowa)
- string lub bajt slice (quote, indent, hex)
- wartości specjalne
- podstawy
- Printf
- Sprintf (format bez drukowania)
- Znajdź błędy fmt za pomocą vet
- domyślne formaty i typ
- Integer (indent, base, sign)
- znak (quoted, Unicode)
- wartość logiczna (true/false)
- wskaźnik (hex)
- Float (wcięcie, precyzja, notacja naukowa)
- ciąg lub bajt slice (quote, indent, hex)
- wartości specjalne
- Czytaj dalej
podstawy
z pakietem Go fmt
możesz formatować liczby i ciągi wypełnione spacjami lub zerami, w różnych bazach i z opcjonalnymi cudzysłowami.
przesyłasz ciąg szablonu zawierający tekst, który chcesz sformatować, a także czasowniki adnotacyjne, które mówią funkcji fmt
, aby sformatować końcowe argumenty.
Printf
w tym przykładzie fmt.Printf
formatuje i zapisuje na standardowe wyjście:
fmt.Printf("Binary: %b\%b", 4, 5) // Prints `Binary: 1001`
- ciąg szablonu jest
"Binary: %b\%b"
, - czasownik adnotacji
%b
Formatuje liczbę w formacie binarnym, a - wartość specjalna
\
jest odwrotnym ukośnikiem.
w szczególnym przypadku czasownik %%
, który nie zużywa żadnego argumentu, tworzy znak procentowy:
fmt.Printf("%d %%", 50) // Prints `50 %`
Sprintf (format bez drukowania)
użyj fmt.Sprintf
, aby sformatować ciąg bez drukowania:
s := fmt.Sprintf("Binary: %b\%b", 4, 5) // s == `Binary: 1001`
Znajdź błędy fmt za pomocą vet
jeśli spróbujesz skompilować i uruchomić tę niepoprawną linię kodu
fmt.Printf("Binary: %b\%b", 4) // An argument to Printf is missing.
, przekonasz się, że program skompiluje się, a następnie wydrukuje
Binary: 100\%!b(MISSING)
aby wcześnie złapać tego typu błędy, możesz użyć polecenia vet – może ono znaleźć wywołania, których argumenty nie są zgodne z ciągiem formatowania.
$ go vet example.goexample.go:8: missing argument for Printf("%b"): format reads arg 2, have only 1 args
domyślne formaty i typ
- wartość:
int64{0, 1}
Format | czasownik | opis |
---|---|---|
%v |
format domyślny | |
int64{0, 1} | %#v |
Go-format składni |
int64 | %T |
typ wartości |
Integer (indent, base, sign)
- wartość:
15
Format | czasownik | opis |
---|---|---|
15 | %d |
baza 10 |
+15 | %+d |
zawsze Pokaż znak |
␣␣15 | %4d |
podkładka ze spacjami (Szerokość 4, Prawa) |
15␣␣ | %-4d |
podkładka ze spacjami (Szerokość 4, lewa justowana) |
0015 | %04d |
Podkładka z zerami (Szerokość 4) |
1111 | %b |
baza 2 |
17 | %o |
baza 8 |
f | %x |
baza 16, małe litery |
F | %X |
baza 16, Wielkie Litery |
0xf | %#x |
podstawa 16, z wiodącym 0x |
znak (quoted, Unicode)
- wartość:
65
(litera Unicode a)
Format | czasownik | opis |
---|---|---|
A | %c |
znak |
’A’ | %q |
cytowany znak |
U+0041 | %U |
Unicode |
U+0041 'A’ | %#U |
Unicode ze znakiem |
wartość logiczna (true/false)
użyj %t
, aby sformatować wartość logiczną jako true
lub false
.
wskaźnik (hex)
użyj %p
, aby sformatować wskaźnik w notacji podstawowej 16 z wiodącą 0x
.
Float (wcięcie, precyzja, notacja naukowa)
- wartość:
123.456
Format | czasownik | opis |
---|---|---|
1.234560 e+02 | %e |
notacja naukowa |
123.456000 | %f |
punkt dziesiętny, brak wykładnika |
123.46 | %.2f |
domyślna szerokość, precyzja 2 |
␣␣123.46 | %8.2f |
Szerokość 8, precyzja 2 |
123.456 | %g |
wykładnik w razie potrzeby, niezbędne cyfry tylko |
ciąg lub bajt slice (quote, indent, hex)
- wartość:
"café"
Format | czasownik | opis |
---|---|---|
kawiarnia | %s |
zwykły ciąg |
␣␣kawiarnia | %6s |
Width 6, right justify |
kawiarnia␣␣ | %-6s |
/ Width = 6 / left justify |
„kawiarnia” | %q |
cytowany ciąg |
636166c3a9 | %x |
Hex dump wartości bajtów |
63 61 66 c3 a9 | % x |
Hex zrzut ze spacjami |
wartości specjalne
wartość | opis |
---|---|
\a |
u+0007 alarm lub dzwonek |
\b |
u+0008 backspace |
\ |
u+005c backslash |
\t |
u+0009 zakładka pozioma |
\n |
linia zasilająca u+000A lub nowa linia |
\f |
u+000c form feed |
\r |
wózek u+000d return |
\v |
zakładka pionowa u+000B |
dowolne wartości mogą być zakodowane za pomocą znaków specjalnych odwrotnego ukośnika i mogą być użyte w dowolnym literale ""
.
istnieją cztery różne formaty:
-
\x
po którym następuje dokładnie dwie cyfry szesnastkowe, -
\
po którym następuje dokładnie trzy ósemkowe cyfry, -
\u
po którym następuje dokładnie cztery cyfry szesnastkowe, -
\U
po którym następuje dokładnie osiem cyfr szesnastkowych.
znaki specjalne \u
i \U
reprezentują punkty kodu Unicode.
fmt.Println("\caf\u00e9") // Prints \café
Czytaj dalej
40+ praktyczne wskazówki sznurkowe