Kako formatirati nize v Go

Kako formatirati nize v Go

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 .

kako popraviti mrtva vrata USB
fmt.Println("This is a test %v", 90) 
fmt.Printf("This is a test %v", 90)

The %in 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.





  rezultat oblikovanja celih števil

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("This is a 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.

kako izvedeti zgodovino vaše hiše
var result = fmt.Sprintf("This is a test %v", 90) 

The Fprintf metoda formatira niz in ga zapiše zapisovalcu (metode, ki izvajajo io.Pisatelj vmesnik)

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

The Fscanf metoda skenira iz bralnika in oblikuje v skladu z določeno obliko.

var take string 

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

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

V tem primeru je Fscanf dekodira niz iz bralnika v vzemi spremenljivko in prebrati spremenljivka vsebuje rezultat formata.

Glagoli za oblikovanje nizov

Go nudi številne glagole za oblikovanje, ki jih lahko uporabite skupaj s funkcijami za oblikovanje nizov.

Obstajajo splošni glagoli za oblikovanje nizov, kot je %in glagol v primerih funkcij oblikovanja niza. Za oblikovanje katere koli podatkovne vrste lahko uporabite splošne glagole za oblikovanje nizov.

Lahko uporabite %#in glagol za izpis katere koli vrednosti, the %+v za strukture, %T glagol za vrsto poljubne vrednosti in %% glagol brez vrednosti.

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 rezultat spremenljivka vsebuje oblikovani niz instancirane strukture. Če ga natisnete, bi moralo izgledati nekako takole:

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

Obstajajo glagoli za oblikovanje specifičnih izvornih podatkovnih tipov Go, vključno s kanali in kazalci.

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

ni bilo mogoče formatirati oken kartice micro sd ni bilo mogoče dokončati

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

%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.
%IN Format Unicode: U+1234; enako kot 'U+%04X'.

Na primer, lahko formatirate celo število z uporabo %d glagol:

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

To so glagoli za oblikovanje števil s plavajočo vejico.

%b brezdecimalni znanstveni zapis z eksponentom potenco dvojke, na način strconv. FormatFloat z obliko 'b', npr. -123456p-78
% in znanstveni zapis, npr. -1,234456e+78
% IN 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 result = fmt.Sprintf("This is a floating point formatting example %f", 432.9503) 
fmt.Println(result)

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

%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 score = "example" 
var result = fmt.Sprintf("This is a string formatting example %s", score)
fmt.Println(result)

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.Reader vmesniki. Zdelo se vam bo uporabno za številne primere uporabe, kot je izdelava spletnih aplikacij in aplikacij ukazne vrstice.