Hogyan kell formázni a karakterláncokat a Go-ban

Hogyan kell formázni a karakterláncokat a Go-ban

A Go kód írása közben számos helyzetben nagyon hasznosnak találja a karakterlánc formázást. Lehet, hogy a bemeneteket elemzi, vagy bonyolultabb kimenetet készít, mint az egyszerű összefűzés. Lehet, hogy a sima karakterláncoktól eltérő típusokkal dolgozik.





A Go karakterláncformázása a printf függvény ismert folyamatát és szintaxisát használja, amelyet a Java-tól a Haskell-ig szintén használnak.





A Go különféle módszereket kínál a karakterláncok formázására a fmt csomag. A karakterlánc formázásához függvényeket és igéket használhat a formázni kívánt művelettől vagy bemenetektől függően.





String formázás a Go-ban

Az fmt csomagban lévő funkciók hasonlóak a megfelelőihez, mint például a printf függvény a bashban vagy C. A Go a formázási igéket C-ből származtatja.

Használod karakterláncformázó igék a változó értékeinek helyőrzőjeként egy karakterláncban. Ezután átadhatja ezt a formázási karakterláncot egy függvénynek, mint például Printf , valamint az adott helyőrzőknek megfelelő értékekkel.



hogyan lehet eltávolítani a Windows 10 frissítést

Nem használhat karakterláncformázó igéket a Nyomtatás és Println mód. Használhatja őket olyan módszerekkel, mint pl Printf és Sprintf .

fmt.Println("This is a test %v", 90) 
fmt.Printf("This is a test %v", 90)

Az %ban ben Az ige bármely értéket az alapértelmezett formátumában nyomtat. Az Println metódus nem ismeri fel az igéket, és kiírja a kapott argumentumokat. Az Printf és Sprintf függvények egyaránt formázzák a nekik átadott első karakterlánc-argumentumot.





  egész számok formázásának eredménye

Karakterlánc formázási függvények az fmt csomagban

Karakterláncok formázása a Go programozási nyelv karakterlánc formázási függvény és ige használatára van szükség. A függvény a formázott karakterláncot adja vissza, az igék pedig a karakterlánc bemeneteinek helyőrzői.

Az Printf metódus formázza a bemenetet a formátummeghatározó szerint, és visszaadja az írott bájtok vagy hibák számát.





fmt.Printf("This is a test %v", 90) 

Hagyományosan nem kell aggódnia a hibák miatt, amikor használja a Printf módszer.

Az Sprintf metódus a megadott formátumnak megfelelően formázza, és az eredményt karakterláncként adja vissza.

var result = fmt.Sprintf("This is a test %v", 90) 

Az Fprintf metódus formázza a karakterláncot, és kiírja egy íróba (olyan módszerek, amelyek megvalósítják a io.Író felület)

// write data to standard output 
result, err = fmt.Fprintf(writer, "This is a test %v", 90)

Az Fscanf metódus beolvas egy olvasóból, és a megadott formátumnak megfelelően formázza.

var take string 

// read data from the given string
readString := strings.NewReader("This is a test")

read, err := fmt.Fscanf(reader, "%v", &take)

Ebben az esetben a Fscanf dekódolja a karakterláncot az olvasóból a vesz változó, és a olvas változó tartalmazza a formátum eredményét.

A karakterláncformázó igék

A Go számos formázási igét kínál, amelyeket a karakterlánc formázási funkciókkal együtt használhat.

Vannak általános karakterlánc-formázó igék, mint például a %ban ben ige a karakterlánc formázási függvények példáiban. Bármilyen adattípus formázásához használhatja az általános karakterlánc-formázó igéket.

Használhatja a %#ban ben ige bármilyen értéket kiadni, a %+v struktúrák esetében a %T ige bármely érték típusához, és a %% ige érték nélkül.

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)

Az eredmény változó tartalmazza a példányosított struktúra formázott karakterláncát. Ha kinyomtatod, valahogy így kell kinéznie:

This is a struct formatting example {name:John Doe age:34 isLoggedIn:true}

Léteznek az igék a Go natív adattípusok formázására, beleértve a csatornákat és a mutatókat.

%t logikai értékeket.
%d int, int8 stb.
%d, %#x, ha a következővel van nyomtatva: %#v uint, uint8 stb.
%g float32, complex64 stb.
%s húr.
%p chan.
%P mutató.

Győződjön meg arról, hogy nem hibázik az igékkel, mivel ezek megkülönböztetik a kis- és nagybetűket, mint pl. chan és mutató igék.

Egész számok és lebegőpontok formázása

Vannak karakterláncformázó igék az egész számok formázásához különböző alapok . Ezen igék bármelyikét használhatja egész számok formázására

%b alap 2
%c a megfelelő Unicode kódpont által képviselt karakter.
%d alap 10.
%O alap 8.
%O 8. alap 0o előtaggal.
%q egy egy idézőjeles karakter szó szerint biztonságosan megszökött a Go szintaxissal.
%x alap 16, kisbetűkkel a-f-hez.
%X 16-os alap, nagybetűkkel az A-F-hez.
%BAN BEN Unicode formátum: U+1234; ugyanaz, mint az 'U+%04X'.

Például formázhat egy egész számot a %d ige:

var result = fmt.Sprintf("This is an integer formatting example %d", 90) 
fmt.Println(result)

Ezek a lebegőpontos számok formázására szolgáló igék.

%b tizedes szám nélküli tudományos jelölés kettő hatványával, strconv módjára. FormatFloat 'b' formátummal, pl. -123456p-78
%és tudományos jelölés, pl. -1,234456e+78
%ÉS tizedesvessző, de kitevő nélkül, például 123,456
%f tizedesvessző, de kitevő nélkül, például 123,456
%F %f szinonimája.
%g %e nagy kitevők esetén, %f egyébként. Pontosság lent.
%G %E nagy kitevőknek, %F egyébként
%x hexadecimális jelölés (két kitevő decimális hatványával), pl. -0x1,23abcp+20.
%X nagybetűs hexadecimális jelölés, pl. -0X1.23ABCP+20.

Íme egy példa kitevő nélküli tizedesvessző formázására a %f ige.

var result = fmt.Sprintf("This is a floating point formatting example %f", 432.9503) 
fmt.Println(result)

Mindig használhatja az általános igéket, ha bizonytalan a típust illetően.

Karakterláncok és bájtok formázása

A karakterláncok és a bájttípusok szeletei meglehetősen hasonlóak a Go-ban. Ezek a karakterláncok és bájtok formázására szolgáló jelzők.

%s a karakterlánc vagy szelet értelmezetlen bájtjai
%q egy dupla idézőjeles karakterlánc biztonságosan kikerült a Go szintaxissal
%x alap 16, kisbetűk, két karakter bájtonként
%X alap 16, nagybetűk, két karakter bájtonként

Íme egy példa egy karakterlánc formázására a %s ige.

var score = "example" 
var result = fmt.Sprintf("This is a string formatting example %s", score)
fmt.Println(result)

Az fmt csomag elengedhetetlen a Python programozáshoz

Az fmt csomag tartalmazza a karakterlánc formázásához szükséges funkciók nagy részét. Go is biztosít a húrok csomag a karakterlánc manipulációhoz és a log csomag, amely formázni tudja a naplózáshoz szükséges karakterláncokat.

Az fmt csomag olyan funkciókkal rendelkezik, amelyek megvalósítják a io.Író és io.Olvasó interfészek. Számos felhasználási esetben hasznosnak találja, például webes és parancssori alkalmazások készítéséhez.