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ármazik.

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.

Nem használhat karakterláncformázó igéket a

instagram viewer
Nyomtatás és Println mód. Használhatja őket olyan módszerekkel, mint pl Printf és Sprintf.

fmt. Println("Ez egy teszt %v", 90)
fmt. Printf("Ez egy teszt %v", 90)

Az %v 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.

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("Ez egy teszt %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 eredmény = fmt. Sprintf("Ez egy teszt %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)

// adatok írása a szabványos kimenetre
eredmény, err = fmt. Fprintf (író: "Ez egy teszt %v", 90)

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

var vesz húr

// adatok olvasása a megadott karakterláncból
readString := karakterláncok. NewReader("Ez egy teszt")

olvas, err := fmt. Fscanf (olvasó, "%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 %v 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 %#v 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.

típus Bármi struct { 
név húr
kor int
isBejelentkezett bool
}

var példány = any {
név: "John Doe",
kor: 34,
isLoggedIn: igaz,
}

var eredmény = fmt. Sprintf("Ez egy struct formázási példa %+v", példány)
fmt. Println (eredmény)

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:

Ez egy struktúra formázási példa {name: John Doe kor: 34 isLoggedIn:igaz}

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

Ige Funkcionalitás
%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

Ige Funkcionalitás
%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.
%U Unicode formátum: U+1234; ugyanaz, mint az "U+%04X".

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

var eredmény = fmt. Sprintf("Ez egy egész szám formázási példa %d", 90)
fmt. Println (eredmény)

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

Ige Funkcionalitás
%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
%e tudományos jelölés, pl. -1,234456e+78
%E 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 eredmény = fmt. Sprintf("Ez egy lebegőpontos formázási példa %f", 432.9503)
fmt. Println (eredmény)

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.

Ige Funkcionalitás
%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 pontszám = "példa"
var eredmény = fmt. Sprintf("Ez egy húr formázási példa %s", pontszám)
fmt. Println (eredmény)

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.