Jak formatować ciągi w Go

Jak formatować ciągi w Go

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.





  wynik formatowania liczb całkowitych

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ń.