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żywać funkcji i czasowników do formatowania ciągów 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 ich 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 .
jak znaleźć szczenięta na sprzedaż
fmt.Println("This is a test %v", 90)
fmt.Printf("This is a test %v", 90)
The %w 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("This is a 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 result = fmt.Sprintf("This is a test %v", 90)
The Fprintf metoda formatuje ciąg i zapisuje go do pisarza (metody implementujące io.Pisarz interfejs)
// write data to standard output
result, err = fmt.Fprintf(writer, "This is a test %v", 90)
The Fscanf metoda skanuje z czytnika i formatuje zgodnie z określonym formatem.
var take string
// read data from the given string
readString := strings.NewReader("This is a test")
read, err := fmt.Fscanf(reader, "%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 %w 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ć %#w czasownik do wyprowadzenia dowolnej wartości, the %+v dla struktur, %T czasownik dla typu dowolnej wartości, a %% czasownik bez wartości.
type any struct {
name string
age int
isLoggedIn bool
}
var instance = any {
name: "John Doe",
age: 34,
isLoggedIn: true,
}
var result = fmt.Sprintf("This is a struct formatting example %+v", instance)
fmt.Println(result)
The wynik zmienna przechowuje sformatowany ciąg tworzonej struktury. Jeśli go wydrukujesz, powinno wyglądać mniej więcej tak:
This is a struct formatting example {name:John Doe age:34 isLoggedIn:true}
Istnieją czasowniki służące do formatowania określonych typów danych natywnych Go, w tym kanałów i wskaźników.
%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
%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. |
%W | Format Unicode: U+1234; tak samo jak „U+%04X”. |
Na przykład możesz sformatować liczbę całkowitą za pomocą %d czasownik:
var result = fmt.Sprintf("This is an integer formatting example %d", 90)
fmt.Println(result)
To są czasowniki służące do formatowania liczb zmiennoprzecinkowych.
%b | notacja naukowa bez dziesiętna z wykładnikiem potęgi dwójki, na wzór strconv. FormatFloat z formatem „b”, np. -123456p-78 |
%oraz | notacja naukowa, m.in. -1,234456e+78 |
%ORAZ | 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 result = fmt.Sprintf("This is a floating point formatting example %f", 432.9503)
fmt.Println(result)
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.
jak zmienić jasność w systemie Windows 10
%s | niezinterpretowane bajty ciągu lub wycinka |
%q | ciąg znaków w 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 score = "example"
var result = fmt.Sprintf("This is a string formatting example %s", score)
fmt.Println(result)
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ą io.Pisarz oraz io.Czytnik interfejsy. Przekonasz się, że jest przydatny w wielu przypadkach użycia, takich jak tworzenie aplikacji internetowych i aplikacji wiersza poleceń.