Go koodi kirjutades on stringide vormindamine paljudes olukordades väga kasulik. Võib-olla sõelute sisendeid või koostate keerukama väljundi kui lihtne konkatenatsioon. Võimalik, et töötate muude kui tavaliste stringidega.

Stringi vormindamine Go-s kasutab tuttavat protsessi ja funktsiooni printf süntaksit, mida kasutavad ka keeled Javast Haskellini.

Go pakub erinevaid meetodeid stringide vormindamiseks rakenduses fmt pakett. Sõltuvalt vormindatavast toimingust või sisenditest saate stringi vormindamiseks kasutada funktsioone ja tegusõnu.

Stringi vormindamine rakenduses Go

Fmt-paketi funktsioonid on sarnased analoogidega, nagu printf funktsioon bashis või C. Go tuletab oma vormindusverbid C-st.

Sa kasutad stringi vormindamise tegusõnad muutujate väärtuste kohahoidjatena sisaldavas stringis. Seejärel saate selle vormindusstringi edastada funktsioonile nagu Printf, koos nendele kohatäitjatele vastavate väärtustega.

Te ei saa kasutada stringivormingu tegusõnu koos Prindi ja Println meetodid. Saate neid kasutada selliste meetoditega nagu Printf ja Sprintf.

instagram viewer
fmt. Println("See on test %v", 90)
fmt. Printf("See on test %v", 90)

The %v verb prindib mis tahes väärtuse vaikevormingus. The Println meetod ei tunne tegusõnu ära ja prindib kõik vastuvõetud argumendid. The Printf ja Sprintf funktsioonid vormindavad mõlemad esimese stringiargumendi, mille neile edastate.

Stringi vormindamise funktsioonid fmt-paketis

Stringide vormindamine Go programmeerimiskeel nõuab stringi vormindamise funktsiooni ja tegusõna kasutamist. Funktsioon tagastab vormindatud stringi ja tegusõnad on stringi sisendite kohahoidjad.

The Printf meetod vormindab sisendi vastavalt vorminguspetsifikaatorile ja tagastab kirjutatud baitide või vigade arvu.

fmt. Printf("See on test %v", 90)

Tavaliselt ei pea te selle kasutamisel vigade pärast muretsema Printf meetod.

The Sprintf meetod vormindab määratud vormingu järgi ja tagastab tulemuse stringina.

var tulemus = fmt. Sprintf("See on test %v", 90)

The Fprintf meetod vormindab stringi ja kirjutab selle kirjutajale (meetodid, mis rakendavad io. Kirjanik liides)

// kirjutage andmed standardväljundisse
tulemus, err = fmt. Fprintf (kirjutaja, "See on test %v", 90)

The Fscanf meetod skannib lugejast ja vormindab vastavalt määratud vormingule.

var võta string

// loe andmeid antud stringist
readString := stringid. NewReader ("See on test")

loe, eksitus := fmt. Fscanf (lugeja, "%v", &take)

Sel juhul on Fscanf dekodeerib stringi lugejast lahtrisse võta muutuja ja lugeda muutuja sisaldab vormingu tulemust.

Stringi vormindamise tegusõnad

Go pakub palju vormindamisverbe, mida saate kasutada koos stringivormingu funktsioonidega.

On olemas üldised stringivormingu verbid, nagu %v tegusõna stringivormingu funktsioonide näidetes. Üldist stringivormingu verbe saate kasutada mis tahes andmetüübi vormindamiseks.

Võite kasutada %#v tegusõna mis tahes väärtuse väljastamiseks, the %+v struktuuride jaoks %T tegusõna mis tahes väärtuse tüübi jaoks ja %% verb väärtusteta.

tüüp ükskõik milline struktuur { 
nimi string
vanus int
on sisselogitud bool
}

var näide = mis tahes {
nimi: "John Doe",
vanus: 34,
isLoggedIn: tõsi,
}

var tulemus = fmt. Sprintf ("See on a struktuur vormingu näide %+v", eksemplar)
fmt. Println (tulemus)

The tulemus muutuja sisaldab instantseeritud struktuuri vormindatud stringi. Kui prindite selle välja, peaks see välja nägema umbes selline:

See on struktuurivormingu näide {name: John Doe vanus: 34 isLoggedIn:tõsi}

Seal on tegusõnad konkreetsete Go natiivsete andmetüüpide, sealhulgas kanalite ja osutite vormindamiseks.

Tegusõna Funktsionaalsus
%t booleanid.
%d int, int8 jne.
%d, %#x, kui trükitud on %#v uint, uint8 jne.
%g float32, kompleks64 jne.
%s string.
%p chan.
%P osuti.

Peaksite tagama, et te ei tee verbidega vigu, kuna need on tõstutundlikud, näiteks chan ja osuti tegusõnad.

Täisarvude ja ujukite vormindamine

Täisarvude vormindamiseks on stringivormingu verbid erinevad alused. Täisarvude vormindamiseks võite kasutada mõnda neist tegusõnadest

Tegusõna Funktsionaalsus
%b alus 2
%c märk, mida esindab vastav Unicode'i koodipunkt.
%d alus 10.
%o alus 8.
%O alus 8 0o eesliitega.
%q ühe jutumärgiga tähemärk pääses Go süntaksiga ohutult välja.
%x alus 16, väikeste tähtedega a-f.
%X alus 16, suurte tähtedega A-F jaoks.
%U Unicode'i vorming: U+1234; sama mis "U+%04X".

Näiteks saate täisarvu vormindada, kasutades %d tegusõna:

var tulemus = fmt. Sprintf("See on täisarvu vormingu näide %d", 90)
fmt. Println (tulemus)

Need on tegusõnad ujukomaarvude vormindamiseks.

Tegusõna Funktsionaalsus
%b kümnendkohata teaduslik tähistus astendaja kahe astmega strconv viisil. FormatFloat 'b'-vorminguga, nt. -123456p-78
%e teaduslik tähistus, nt. -1,234456e+78
%E koma, kuid ilma eksponendita, nt 123,456
%f koma, kuid ilma eksponendita, nt 123,456
%F %f sünonüüm.
%g %e suurte eksponentide puhul, %f muidu. Täpsus allpool.
%G %E suurte eksponentide puhul, %F muidu
%x kuueteistkümnendsüsteem (kahe eksponendi kümnendastmega), nt -0x1,23abcp+20.
%X suurtähtedega kuueteistkümnendsüsteem, nt. -0X1.23ABCP+20.

Siin on näide koma ilma eksponendita vormindamisest koos %f tegusõna

var tulemus = fmt. Sprintf("See on ujukomavormingu näide % f", 432.9503)
fmt. Println (tulemus)

Kui te pole tüübis kindel, võite alati kasutada üldisi tegusõnu.

Stringide ja baitide vormindamine

Stringid ja baiditüüpide osad on Go-s üsna sarnased. Need on stringide ja baitide vormindamise lipud.

Tegusõna Funktsionaalsus
%s stringi või lõigu tõlgendamata baidid
%q topelttsiteeritud string pääses Go süntaksiga ohutult välja
%x alus 16, väikesed tähed, kaks tähemärki baidi kohta
%X alus 16, suurtähed, kaks tähemärki baidi kohta

Siin on näide stringi vormindamisest %s tegusõna

var skoor = "näide"
var tulemus = fmt. Sprintf ("See on a string vormingu näide %s", skoor)
fmt. Println (tulemus)

Fmt pakett on Pythoni programmeerimise jaoks hädavajalik

The fmt pakett sisaldab enamikku funktsioonidest, mida vajate stringi vormindamiseks. Go pakub ka a stringid pakett stringidega manipuleerimiseks ja a logi pakett, mis saab logimiseks stringe vormindada.

The fmt paketil on funktsioone, mis rakendavad io. Kirjanik ja io. Lugeja liidesed. See on kasulik paljudel juhtudel, näiteks veebi- ja käsurearakenduste loomiseks.