Ko pišete kodo Go, se vam zdi oblikovanje nizov zelo uporabno v številnih situacijah. Morda razčlenjujete vnose ali ustvarjate bolj zapleten izhod kot preprosto veriženje. Morda delate s tipi, ki niso navadni nizi.
Oblikovanje nizov v Go uporablja znani postopek in sintakso funkcije printf, ki jo uporabljajo tudi jeziki od Jave do Haskella.
Go ponuja različne metode za oblikovanje nizov v fmt paket. Funkcije in glagole lahko uporabite za oblikovanje nizov, odvisno od operacije ali vnosov, ki jih želite oblikovati.
Oblikovanje nizov v Go
Funkcije v paketu fmt so podobne analognim, npr funkcija printf v bashu ali C. Go izpeljuje glagole za oblikovanje iz C.
Uporabljaš glagoli za oblikovanje nizov kot ograde za vaše vrednosti spremenljivk v vsebovalnem nizu. Nato lahko ta niz za oblikovanje posredujete funkciji, kot je Printf, skupaj z vrednostmi, ki ustrezajo tem ogradam.
Glagolov za oblikovanje nizov ne morete uporabiti z Tiskanje in Println metode. Uporabite jih lahko z metodami, kot so Printf in Sprintf.
fmt. Println("To je test %v", 90)
fmt. Printf("To je test %v", 90)
The %v glagol natisne katero koli vrednost v privzeti obliki. The Println metoda ne prepozna glagolov in natisne vse argumente, ki jih prejme. The Printf in Sprintf obe funkciji oblikujeta prvi argument niza, ki jima ga posredujete.
Funkcije oblikovanja nizov v paketu fmt
Oblikovanje nizov v programski jezik Go zahteva, da uporabite funkcijo za oblikovanje niza in glagol. Funkcija vrne oblikovani niz, glagoli pa so ograde za vnose v niz.
The Printf metoda formatira vhod glede na specifikator formata in vrne število zapisanih bajtov ali napak.
fmt. Printf("To je test %v", 90)
Običajno vam pri uporabi ne bo treba skrbeti za napake Printf metoda.
The Sprintf metoda oblikuje glede na določeno obliko in vrne rezultat kot niz.
var rezultat = fmt. Sprintf("To je test %v", 90)
The Fprintf metoda formatira niz in ga zapiše zapisovalcu (metode, ki izvajajo io. Pisatelj vmesnik)
// zapis podatkov v standardni izhod
rezultat, err = fmt. Fprintf (pisec, "To je test %v", 90)
The Fscanf metoda skenira iz bralnika in oblikuje v skladu z določeno obliko.
var vzemi vrvica
// prebere podatke iz podanega niza
readString := nizi. NewReader("To je test")
branje, napaka := fmt. Fscanf (bralnik, "%v", &take)
V tem primeru je Fscanf dekodira niz iz bralnika v vzemi spremenljivka in prebrati spremenljivka vsebuje rezultat formata.
Glagoli za oblikovanje nizov
Go ponuja številne glagole za oblikovanje, ki jih lahko uporabite skupaj s funkcijami za oblikovanje nizov.
Obstajajo splošni glagoli za oblikovanje nizov, kot je %v glagol v primerih funkcij oblikovanja niza. Za oblikovanje katere koli vrste podatkov lahko uporabite splošne glagole za oblikovanje nizov.
Lahko uporabite %#v glagol za izpis katere koli vrednosti, the %+v za strukture, %T glagol za vrsto poljubne vrednosti in %% glagol brez vrednosti.
vrsto kaj struct {
ime vrvica
starost int
je prijavljen bool
}var primerek = katerikoli {
ime: "John Doe",
starost: 34,
je prijavljen: prav,
}
var rezultat = fmt. Sprintf("To je a struct primer oblikovanja %+v", primer)
fmt. Println (rezultat)
The rezultat spremenljivka vsebuje oblikovani niz instancirane strukture. Če ga natisnete, bi moralo izgledati nekako takole:
To je primer oblikovanja strukture {name: John Doe starost: 34 isLoggedIn:prav}
Obstajajo glagoli za oblikovanje specifičnih izvornih podatkovnih tipov Go, vključno s kanali in kazalci.
Glagol | Funkcionalnost |
---|---|
%t | logične vrednosti. |
%d | int, int8 itd. |
%d, %#x, če je natisnjeno z %#v | uint, uint8 itd. |
%g | float32, complex64 itd. |
%s | vrvica. |
%p | kan. |
%P | kazalec. |
Prepričajte se, da z glagoli ne delate napak, saj razlikujejo med velikimi in malimi črkami, kot npr. kan in kazalec glagoli.
Oblikovanje celih in lebdečih števil
Obstajajo glagoli za oblikovanje nizov za oblikovanje celih števil različne podlage. Za oblikovanje celih števil lahko uporabite katerega koli od teh glagolov
Glagol | Funkcionalnost |
---|---|
%b | osnova 2 |
%c | znak, ki ga predstavlja ustrezna kodna točka Unicode. |
%d | osnova 10. |
%o | osnova 8. |
%O | osnova 8 s predpono 0o. |
%q | dobesedni znak z enojnimi narekovaji je varno ušel s sintakso Go. |
%x | osnova 16, z malimi črkami za a-f. |
%X | osnova 16, z velikimi črkami za A-F. |
%U | Format Unicode: U+1234; enako kot "U+%04X". |
Na primer, lahko oblikujete celo število z uporabo %d glagol:
var rezultat = fmt. Sprintf("To je primer oblikovanja celega števila %d", 90)
fmt. Println (rezultat)
To so glagoli za oblikovanje števil s plavajočo vejico.
Glagol | Funkcionalnost |
---|---|
%b | brezdecimalni znanstveni zapis z eksponentom potenco dvojke, na način strconv. FormatFloat z obliko 'b', npr. -123456p-78 |
%e | znanstveni zapis, npr. -1,234456e+78 |
%E | decimalno vejico, vendar brez eksponenta, npr. 123,456 |
%f | decimalno vejico, vendar brez eksponenta, npr. 123,456 |
%F | sinonim za %f. |
%g | %e za velike eksponente, %f sicer. Natančnost spodaj. |
%G | %E za velike eksponente, sicer %F |
%x | šestnajstiški zapis (z decimalno potenco dveh eksponentov), npr. -0x1,23abcp+20. |
%X | šestnajstiški zapis z velikimi črkami, npr. -0X1,23ABCP+20. |
Tukaj je primer oblikovanja decimalne vejice brez eksponenta z %f glagolnik
var rezultat = fmt. Sprintf("To je primer oblikovanja s plavajočo vejico %f", 432.9503)
fmt. Println (rezultat)
Če niste prepričani glede vrste, lahko vedno uporabite splošne glagole.
Oblikovanje nizov in bajtov
Nizi in rezine vrst bajtov so v Go precej podobni. To so zastavice za oblikovanje nizov in bajtov.
Glagol | Funkcionalnost |
---|---|
%s | neinterpretirani bajti niza ali rezine |
%q | niz z dvojnimi narekovaji je varno ušel s sintakso Go |
%x | osnova 16, male črke, dva znaka na bajt |
%X | osnova 16, velike črke, dva znaka na bajt |
Tukaj je primer oblikovanja niza z %s glagolnik
var rezultat = "primer"
var rezultat = fmt. Sprintf("To je a vrvica primer oblikovanja %s", rezultat)
fmt. Println (rezultat)
Paket fmt je bistvenega pomena za programiranje Python
The fmt vsebuje večino funkcij, ki jih boste potrebovali za oblikovanje nizov. Go ponuja tudi a strune paket za manipulacijo nizov in a dnevnik paket, ki lahko oblikuje nize za beleženje.
The fmt paket ima funkcije, ki izvajajo io. Pisatelj in io. Bralec vmesniki. Zdelo se vam bo uporabno za številne primere uporabe, kot je izdelava spletnih aplikacij in aplikacij ukazne vrstice.