Rašydami „Go“ kodą, daugelyje situacijų eilučių formatavimas bus labai naudingas. Galbūt analizuojate įvestis arba kuriate sudėtingesnę išvestį nei paprastas sujungimas. Galbūt dirbate su kitais tipais nei paprastos eilutės.

Eilučių formatavimas programoje „Go“ naudoja pažįstamą printf funkcijos procesą ir sintaksę, kurią taip pat naudoja kalbos nuo „Java“ iki „Haskell“.

Go siūlo įvairius būdus formatuoti eilutes fmt paketą. Galite naudoti funkcijas ir veiksmažodžius eilutės formatavimui, priklausomai nuo operacijos ar įvesties, kurią norite formatuoti.

Eilučių formatavimas programoje „Go“.

Fmt paketo funkcijos yra panašios į analogiškas funkcijas, pvz printf funkcija bash arba C. Go savo formatavimo veiksmažodžius kildina iš C.

Tu naudoji eilučių formatavimo veiksmažodžiai kaip kintamųjų reikšmių vietos žymekliai eilutėje, kurioje yra. Tada galite perduoti tą formatavimo eilutę tokiai funkcijai kaip Printf, kartu su reikšmėmis, atitinkančiomis tuos vietos rezervavimo ženklus.

Negalite naudoti eilučių formatavimo veiksmažodžių su

instagram viewer
Spausdinti ir Println metodus. Galite juos naudoti su tokiais metodais kaip Printf ir Sprintf.

fmt. Println("Tai testas %v", 90)
fmt. Printf("Tai testas %v", 90)

The %v veiksmažodis spausdina bet kokią reikšmę numatytuoju formatu. The Println metodas neatpažįsta veiksmažodžių ir spausdina bet kokius argumentus, kuriuos gauna. The Printf ir Sprintf Funkcijos abu formatuoja pirmąjį joms perduodamos eilutės argumentą.

Eilučių formatavimo funkcijos fmt pakete

Formatuoja eilutes Go programavimo kalba reikia naudoti eilutės formatavimo funkciją ir veiksmažodį. Funkcija grąžina suformatuotą eilutę, o veiksmažodžiai yra eilutės įvesties rezervuotos vietos.

The Printf metodas suformatuoja įvestį pagal formato specifikaciją ir grąžina įrašytų baitų arba klaidų skaičių.

fmt. Printf("Tai testas %v", 90)

Paprastai jums nereikės jaudintis dėl klaidų, kai naudojate Printf metodas.

The Sprintf metodas formatuoja pagal nurodytą formatą ir pateikia rezultatą kaip eilutę.

var rezultatas = fmt. Sprintf("Tai testas %v", 90)

The Fprintf metodas suformatuoja eilutę ir įrašo ją rašytojui (metodai, kurie įgyvendina io. Rašytojas sąsaja)

// įrašyti duomenis į standartinę išvestį
rezultatas, err = fmt. Fprintf (rašytojas, "Tai testas %v", 90)

The Fscanf metodu nuskaito iš skaitytuvo ir formatuoja pagal nurodytą formatą.

var imti styga

// nuskaityti duotosios eilutės duomenis
readString := eilutės. NewReader ("Tai yra testas")

skaityti, klysti := fmt. Fscanf (skaitytojas, „%v“, &take)

Šiuo atveju, Fscanf iššifruoja eilutę iš skaitytuvo į imti kintamasis ir skaityti kintamasis turi formato rezultatą.

Eilučių formatavimo veiksmažodžiai

Go pateikia daug formatavimo veiksmažodžių, kuriuos galite naudoti kartu su eilučių formatavimo funkcijomis.

Yra bendrųjų eilučių formatavimo veiksmažodžių, tokių kaip %v veiksmažodis eilutės formatavimo funkcijų pavyzdžiuose. Galite naudoti bendruosius eilučių formatavimo veiksmažodžius bet kokio tipo duomenų formatavimui.

Galite naudoti %#v veiksmažodis išvesti bet kokią reikšmę, the %+v konstrukcijoms, %T veiksmažodis bet kokios reikšmės tipui ir %% veiksmažodis be vertybių.

tipo bet koks struktūra { 
vardas styga
amžiaus tarpt
isPrisijungęs bool
}

var pavyzdys = bet kuris {
vardas: "John Doe",
amžius: 34,
isLoggedIn: tiesa,
}

var rezultatas = fmt. Sprintf ("Tai yra a struktūra formatavimo pavyzdys %+v“, pavyzdys)
fmt. Println (rezultatas)

The rezultatas kintamasis turi suformatuotą egzempliorių struktūros eilutę. Jei jį atsispausdinsite, jis turėtų atrodyti maždaug taip:

Tai yra struktūros formatavimo pavyzdys {name: John Doe amžius: 34 m. prisijungęs:tiesa}

Yra veiksmažodžių, skirtų konkretiems Go vietinių duomenų tipams, įskaitant kanalus ir rodykles, formatuoti.

Veiksmažodis Funkcionalumas
%t booleans.
%d int, int8 ir kt.
%d, %#x, jei atspausdinta naudojant %#v uint, uint8 ir kt.
%g float32, kompleksas64 ir kt.
%s styga.
%p chan.
%P rodyklė.

Norėsite užtikrinti, kad nepadarytumėte klaidų su veiksmažodžiais, nes juose skiriamos didžiosios ir mažosios raidės, pvz., chan ir rodyklė veiksmažodžiai.

Sveikųjų skaičių ir slankiųjų skaičių formatavimas

Yra eilučių formatavimo veiksmažodžiai, skirti formatuoti sveikuosius skaičius skirtingos bazės. Norėdami formatuoti sveikuosius skaičius, galite naudoti bet kurį iš šių veiksmažodžių

Veiksmažodis Funkcionalumas
%b 2 bazė
%c simbolis, vaizduojamas atitinkamo Unikodo kodo taško.
%d 10 bazė.
%o 8 bazė.
%O 8 bazė su 0o priešdėliu.
%q vienkabutis simbolis saugiai pašalintas naudojant Go sintaksę.
%x 16 bazė su mažosiomis raidėmis a–f.
%X 16 bazė su didžiosiomis raidėmis A-F.
%U Unikodo formatas: U+1234; tas pats kaip "U+%04X".

Pavyzdžiui, sveikąjį skaičių galite suformatuoti naudodami %d veiksmažodis:

var rezultatas = fmt. Sprintf("Tai sveikųjų skaičių formatavimo pavyzdys %d", 90)
fmt. Println (rezultatas)

Tai yra veiksmažodžiai, skirti slankiojo kablelio skaičiams formatuoti.

Veiksmažodis Funkcionalumas
%b dešimtainis mokslinis žymėjimas su laipsniu du, strconv būdu. FormatFloat su „b“ formatu, pvz. -123456p-78
%e mokslinis žymėjimas, pvz. -1,234456e+78
%E kablelis, bet be laipsnio, pvz., 123,456
%f kablelis, bet be laipsnio, pvz., 123,456
%F %f sinonimas.
%g %e dideliems eksponentams, %f kitu atveju. Tikslumas žemiau.
%G %E dideliems eksponentams, %F kitu atveju
%x šešioliktainis žymėjimas (su dviejų rodiklių dešimtaine galia), pvz., -0x1.23abcp+20.
%X didžiųjų raidžių šešioliktainis žymėjimas, pvz. -0X1.23ABCP+20.

Štai pavyzdys, kaip formatuoti dešimtainį tašką be eksponento su %f veiksmažodis.

var rezultatas = fmt. Sprintf("Tai slankiojo kablelio formatavimo pavyzdys %f", 432.9503)
fmt. Println (rezultatas)

Visada galite naudoti bendruosius veiksmažodžius, jei nesate tikri dėl tipo.

Eilučių ir baitų formatavimas

„Go“ eilutės ir baitų tipų dalys yra gana panašios. Tai yra eilučių ir baitų formatavimo vėliavėlės.

Veiksmažodis Funkcionalumas
%s neinterpretuoti eilutės arba skilties baitai
%q dviguba eilutė saugiai pašalinta naudojant Go sintaksę
%x 16 bazė, mažosios raidės, du simboliai viename baite
%X 16 bazė, didžiosios raidės, du simboliai viename baite

Štai pavyzdys, kaip suformatuoti eilutę su %s veiksmažodis.

var balas = "pavyzdys"
var rezultatas = fmt. Sprintf ("Tai yra a styga formatavimo pavyzdys %s", rezultatas)
fmt. Println (rezultatas)

„Fmt“ paketas yra būtinas „Python“ programavimui

The fmt pakete yra dauguma funkcijų, kurių prireiks eilučių formatavimui. Go taip pat teikia a stygos paketas, skirtas manipuliuoti eilutėmis ir a žurnalas paketą, kuris gali formatuoti eilutes registravimui.

The fmt paketas turi funkcijų, kurios įgyvendina io. Rašytojas ir io. Skaitytojas sąsajos. Tai bus naudinga daugeliu atvejų, pavyzdžiui, kuriant žiniatinklio ir komandinės eilutės programas.