Podczas pisania kodu w Go, formatowanie ciągów jest bardzo przydatne w wielu sytuacjach. Możesz analizować dane wejściowe lub tworzyć bardziej złożone dane wyjściowe niż zwykłe konkatenacje. Być może pracujesz z typami innymi niż zwykłe ciągi.
Formatowanie ciągów w Go wykorzystuje znany proces i składnię funkcji printf, z której korzystają również języki od Javy do Haskella.
Go udostępnia różne metody formatowania ciągów w fmt pakiet. Możesz użyć funkcji i czasowników do formatowania ciągu w zależności od operacji lub danych wejściowych, które chcesz sformatować.
Formatowanie ciągów w Go
Funkcje w pakiecie fmt są podobne do odpowiedników, np. funkcja printf w bash lub C. Go wywodzi swoje czasowniki formatujące z języka C.
Używasz czasowniki formatujące ciąg jako symbole zastępcze dla wartości zmiennych w ciągu zawierającym. Następnie możesz przekazać ten ciąg formatujący do funkcji, takiej jak Printf, wraz z wartościami odpowiadającymi tym symbolom zastępczym.
Nie możesz używać czasowników formatujących ciąg znaków z
Wydrukować oraz Println metody. Możesz ich używać za pomocą metod takich jak Printf oraz Sprintf.fmt. Println("To jest test %v", 90)
fmt. Printf("To jest test %v", 90)
The %v verb drukuje dowolną wartość w swoim domyślnym formacie. The Println metoda nie rozpoznaje czasowników i wypisuje wszystkie otrzymane argumenty. The Printf oraz Sprintf obie funkcje formatują pierwszy argument ciągu, który im przekazujesz.
Funkcje formatowania ciągów w pakiecie fmt
Formatowanie ciągów w język programowania Go wymaga użycia funkcji formatowania ciągu i czasownika. Funkcja zwraca sformatowany ciąg, a czasowniki są symbolami zastępczymi danych wejściowych ciągu.
The Printf Metoda formatuje dane wejściowe zgodnie ze specyfikatorem formatu i zwraca liczbę zapisanych bajtów lub błędów.
fmt. Printf("To jest test %v", 90)
Konwencjonalnie nie musisz martwić się błędami podczas korzystania z Printf metoda.
The Sprintf metoda formatuje zgodnie z określonym formatem i zwraca wynik jako ciąg.
var wynik = fmt. Sprintf("To jest test %v", 90)
The Fprintf metoda formatuje ciąg i zapisuje go do pisarza (metody implementujące ja. Pisarz interfejs)
// zapis danych na standardowe wyjście
wynik, błąd = fmt. Fprintf (pisarz, "To jest test %v", 90)
The Fscanf metoda skanuje z czytnika i formatuje zgodnie z określonym formatem.
var Brać strunowy
// odczytaj dane z podanego ciągu
readString := ciągi. NewReader("To jest test")
przeczytaj, błąd := fmt. Fscanf (czytnik, "%v", &take)
W tym przypadku Fscanf dekoduje ciąg z czytnika do Brać zmienna, a czytać zmienna przechowuje wynik formatu.
Czasowniki formatujące ciągi
Go udostępnia wiele czasowników formatujących, których można używać wraz z funkcjami formatowania ciągów.
Istnieją ogólne czasowniki formatujące ciągi, takie jak %v czasownik w przykładach funkcji formatowania ciągu. Za pomocą ogólnych czasowników formatujących ciąg można sformatować dowolny typ danych.
Możesz użyć %#v czasownik do wyprowadzenia dowolnej wartości, the %+v dla struktur, %T czasownik dla typu dowolnej wartości, a %% czasownik bez wartości.
rodzaj każdy struktura {
Nazwa strunowy
wiek int
isLoggedIn głupota
}var instancja = dowolna {
imię: "Jan Kowalski",
wiek: 34,
jest zalogowany: PRAWDA,
}
var wynik = fmt. Sprintf("To jest struktura przykład formatowania %+v", instancja)
fmt. Drukujln (wynik)
The wynik zmienna przechowuje sformatowany ciąg tworzonej struktury. Jeśli go wydrukujesz, powinien wyglądać mniej więcej tak:
To jest przykład formatowania struktury {name: John Doe wiek: 34 isLoggedIn:PRAWDA}
Istnieją czasowniki służące do formatowania określonych typów danych natywnych Go, w tym kanałów i wskaźników.
Czasownik | Funkcjonalność |
---|---|
%t | wartości logiczne. |
%d | int, int8 itd. |
%d, %#x jeśli wydrukowano z %#v | uint, uint8 itd. |
%g | float32, complex64 itd. |
%s | strunowy. |
%p | chan. |
%P | wskaźnik. |
Upewnij się, że nie popełnisz błędów z czasownikami, ponieważ są one rozróżniane wielkością liter, tak jak Chan oraz wskaźnik czasowniki.
Formatowanie liczb całkowitych i zmiennoprzecinkowych
Istnieją czasowniki formatujące ciągi do formatowania liczb całkowitych w różne bazy. Możesz użyć dowolnego z tych czasowników do formatowania liczb całkowitych
Czasownik | Funkcjonalność |
---|---|
%b | podstawa 2 |
%c | znak reprezentowany przez odpowiedni punkt kodu Unicode. |
%d | baza 10. |
%o | podstawa 8. |
%O | podstawa 8 z prefiksem 0o. |
%q | literał znakowy w pojedynczym cudzysłowie bezpiecznie uciekł za pomocą składni Go. |
%x | podstawa 16, małymi literami dla a-f. |
%X | podstawa 16, z dużymi literami dla A-F. |
%U | Format Unicode: U + 1234; tak samo jak „U+%04X”. |
Na przykład możesz sformatować liczbę całkowitą za pomocą %d czasownik:
var wynik = fmt. Sprintf("To jest przykład formatowania liczb całkowitych %d", 90)
fmt. Drukujln (wynik)
To są czasowniki służące do formatowania liczb zmiennoprzecinkowych.
Czasownik | Funkcjonalność |
---|---|
%b | notacja naukowa bez dziesiętna z wykładnikiem potęgi dwójki, na wzór strconv. FormatFloat z formatem „b”, np. -123456p-78 |
%mi | notacja naukowa, m.in. -1,234456e+78 |
%MI | przecinek dziesiętny, ale bez wykładnika, np. 123,456 |
%f | przecinek dziesiętny, ale bez wykładnika, np. 123,456 |
%F | synonim %f. |
%g | %e dla dużych wykładników, %f w przeciwnym razie. Precyzja poniżej. |
%G | %E dla dużych wykładników, %F w przeciwnym razie |
%x | notacja szesnastkowa (z potęgą dziesiętną dwóch wykładników), np. -0x1,23abcp+20. |
%X | zapis szesnastkowy z dużymi literami, np. -0X1,23ABCP+20. |
Oto przykład formatowania przecinka dziesiętnego bez wykładnika za pomocą %f czasownik.
var wynik = fmt. Sprintf("To jest przykład formatowania zmiennoprzecinkowego %f", 432.9503)
fmt. Drukujln (wynik)
Zawsze możesz użyć czasowników ogólnych, jeśli nie masz pewności co do typu.
Formatowanie ciągów i bajtów
Łańcuchy i fragmenty typów bajtów są w Go dość podobne. Są to flagi służące do formatowania ciągów i bajtów.
Czasownik | Funkcjonalność |
---|---|
%s | niezinterpretowane bajty ciągu lub wycinka |
%q | ciąg w podwójnym cudzysłowie, który bezpiecznie uciekł za pomocą składni Go |
%x | podstawa 16, małe litery, dwa znaki na bajt |
%X | podstawa 16, wielkie litery, dwa znaki na bajt |
Oto przykład formatowania ciągu za pomocą %s czasownik.
var wynik = "przykład"
var wynik = fmt. Sprintf("To jest strunowy przykład formatowania %s", wynik)
fmt. Drukujln (wynik)
Pakiet fmt jest niezbędny do programowania w Pythonie
The fmt pakiet zawiera większość funkcji potrzebnych do formatowania ciągów. Go zapewnia również smyczki pakiet do manipulacji ciągami i a dziennik pakiet, który może formatować ciągi do logowania.
The fmt pakiet posiada funkcje, które implementują ja. Pisarz oraz ja. Czytelnik interfejsy. Przekonasz się, że jest przydatny w wielu przypadkach użycia, takich jak tworzenie aplikacji internetowych i aplikacji wiersza poleceń.