Kuinka muotoilla merkkijonoja Gossa

Kuinka muotoilla merkkijonoja Gossa

Kun kirjoitat Go-koodia, merkkijonomuotoilu on erittäin hyödyllistä monissa tilanteissa. Saatat jäsentää syötteitä tai luoda monimutkaisempaa tulosta kuin yksinkertainen ketjutus. Saatat työskennellä muiden kuin tavallisten merkkijonojen kanssa.





Go:n merkkijonomuotoilu käyttää tuttua printf-funktion prosessia ja syntaksia, jota käyttävät myös kielet Javasta Haskelliin.





Go tarjoaa erilaisia ​​menetelmiä merkkijonojen muotoiluun fmt paketti. Voit käyttää funktioita ja verbejä merkkijonojen muotoiluun riippuen toiminnosta tai syötteistä, joita haluat muotoilla.





ei voi poistaa, koska tiedosto on käytössä

Merkkijonojen muotoilu Goissa

Fmt-paketin toiminnot ovat samanlaisia ​​kuin vastaavissa, kuten printf-funktio bashissa tai C. Go johtaa muotoiluverbinsä C:stä.

Sinä käytät merkkijonomuotoiluverbit muuttujien arvojen paikkamerkkinä sisältävässä merkkijonossa. Voit sitten välittää tämän muotoilumerkkijonon funktiolle, kuten Printf , sekä näitä paikkamerkkejä vastaavia arvoja.



Et voi käyttää merkkijonomuotoiluverbejä kanssa Tulosta ja Println menetelmiä. Voit käyttää niitä menetelmillä, kuten Printf ja Sprintf .

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

The %sisään verbi tulostaa minkä tahansa arvon oletusmuodossaan. The Println menetelmä ei tunnista verbejä ja tulostaa mitä tahansa argumentteja se vastaanottaa. The Printf ja Sprintf funktiot molemmat muotoilevat ensimmäisen niille välittämäsi merkkijonoargumentin.





  kokonaislukujen muotoilun tulos

Merkkijonomuotoilufunktiot fmt-paketissa

Muotoile merkkijonoja Go-ohjelmointikieli edellyttää merkkijonomuotoilufunktion ja verbin käyttöä. Funktio palauttaa muotoillun merkkijonon, ja verbit ovat merkkijonon syötteiden paikkamerkit.

The Printf menetelmä muotoilee syötteen muotomääritteen mukaan ja palauttaa kirjoitettujen tavujen tai virheiden määrän.





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

Perinteisesti sinun ei tarvitse huolehtia virheistä, kun käytät Printf menetelmä.

The Sprintf menetelmä muotoilee määritetyn muodon mukaan ja palauttaa tuloksen merkkijonona.

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

The Fprintf menetelmä muotoilee merkkijonon ja kirjoittaa sen kirjoittajalle (menetelmät, jotka toteuttavat io.Writer käyttöliittymä)

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

The Fscanf menetelmä skannaa lukijasta ja muotoilee määritetyn muodon mukaan.

iPhone 5: n kotipainike ei toimi
var take string 

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

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

Tässä tapauksessa Fscanf purkaa merkkijonon lukijasta ota muuttuja ja lukea muuttuja sisältää muodon tuloksen.

Merkkijonojen muotoiluverbit

Go tarjoaa monia muotoiluverbejä, joita voit käyttää merkkijonomuotoilutoimintojen kanssa.

On olemassa yleisiä merkkijonomuotoiluverbejä, kuten %sisään verbi merkkijonomuotoilutoimintojen esimerkeissä. Voit käyttää yleisiä merkkijonomuotoiluverbejä minkä tahansa tietotyypin muotoiluun.

Voit käyttää %#sisään verbi tuottamaan minkä tahansa arvon, the %+v rakenteille, %T verbi minkä tahansa arvon tyypille ja %% verbi ilman arvoja.

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 tulos muuttuja sisältää instantoidun rakenteen muotoillun merkkijonon. Jos tulostat sen, sen pitäisi näyttää tältä:

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

Siellä on verbejä tiettyjen Go-natiivitietotyyppien muotoiluun, mukaan lukien kanavat ja osoittimet.

%t booleans.
%d int, int8 jne.
%d, %#x, jos painettu %#v uint, uint8 jne.
%g float32, kompleksi64 jne.
%s merkkijono.
%p chan.
%P osoitin.

Haluat varmistaa, että et tee virheitä verbien kanssa, koska ne ovat isojen ja pienten kirjainten välisiä, kuten chan ja osoitin verbit.

Kokonaislukujen ja kelluvien muotojen muotoilu

On olemassa merkkijonomuotoiluverbejä kokonaislukujen muotoiluun erilaiset pohjat . Voit käyttää mitä tahansa näistä verbeistä kokonaislukujen muotoiluun

%b pohja 2
%c vastaavan Unicode-koodipisteen edustama merkki.
%d pohja 10.
%O pohja 8.
%O kanta 8 0o-etuliitteellä.
%q kertalainausmerkkiliteraali pakeni turvallisesti Go-syntaksilla.
%x pohja 16, pienillä kirjaimilla a-f.
%X pohja 16, isot kirjaimet A-F.
%SISÄÄN Unicode-muoto: U+1234; sama kuin 'U+%04X'.

Voit esimerkiksi muotoilla kokonaisluvun käyttämällä %d verbi:

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

Nämä ovat verbejä liukulukujen muotoiluun.

%b desimaaliton tieteellinen merkintä, jonka eksponentin potenssi on kaksi, strconv:n tapaan. FormatFloat 'b'-muodolla, esim. -123456p-78
%ja tieteellinen merkintä, esim. -1,234456e+78
%JA desimaalipilkku, mutta ei eksponenttia, esim. 123,456
%f desimaalipilkku, mutta ei eksponenttia, esim. 123,456
%F synonyymi sanalle %f.
%g %e suurille eksponenteille, %f muuten. Tarkkuus alla.
%G %E suurille eksponenteille, %F muuten
%x heksadesimaalimerkintä (kahden eksponentin desimaaliteholla), esim. -0x1.23abcp+20.
%X heksadesimaalimerkintä isoilla kirjaimilla, esim. -0X1.23ABCP+20.

Tässä on esimerkki desimaalipilkun muotoilusta ilman eksponenttia %f verbi.

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

Voit aina käyttää yleisiä verbejä, jos olet epävarma tyypistä.

Merkkijonojen ja tavujen muotoilu

Merkkijonot ja tavutyyppien osat ovat melko samanlaisia ​​Gossa. Nämä ovat merkkijonojen ja tavujen muotoilun lippuja.

kriittinen prosessi kuoli virheessä Windows 10: ssä
%s merkkijonon tai viipaleen tulkitsemattomat tavut
%q kaksoislainausmerkkijono poistui turvallisesti Go-syntaksilla
%x kantaluku 16, pienet kirjaimet, kaksi merkkiä tavua kohden
%X kanta 16, isot kirjaimet, kaksi merkkiä tavua kohden

Tässä on esimerkki merkkijonon muotoilusta %s verbi.

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

Fmt-paketti on välttämätön Python-ohjelmoinnissa

The fmt paketti sisältää suurimman osan toiminnoista, joita tarvitset merkkijonojen muotoiluun. Go tarjoaa myös a jouset paketti merkkijonojen käsittelyyn ja a Hirsi paketti, joka voi muotoilla merkkijonoja kirjaamista varten.

The fmt paketissa on toimintoja, jotka toteuttavat io.Writer ja io.Reader käyttöliittymät. Se on hyödyllinen moniin käyttötapauksiin, kuten verkko- ja komentorivisovellusten rakentamiseen.