Kuidas vormindada stringe Go-s

Kuidas vormindada stringe Go-s

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 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 sarnaste funktsioonidega 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 stringi vorminguga tegusõnu Prindi ja Println meetodid. Saate neid kasutada selliste meetoditega nagu Printf ja Sprintf .

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

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





  täisarvude vormindamise tulemus

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("This is a 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 result = fmt.Sprintf("This is a test %v", 90) 

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

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

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

kuidas avada psd -faili
var take string 

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

read, err := fmt.Fscanf(reader, "%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.

leida kõik minu e -posti aadressiga lingitud kontod

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

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

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 tulemus muutuja sisaldab instantseeritud struktuuri vormindatud stringi. Kui prindite selle välja, peaks see välja nägema umbes selline:

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

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

%t tõeväärtused.
%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

%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.
%IN Unicode'i vorming: U+1234; sama mis 'U+%04X'.

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

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

Need on tegusõnad ujukomaarvude vormindamiseks.

%b kümnendkohata teaduslik tähistus astendaja kahe astmega strconv viisil. FormatFloat 'b'-vorminguga, nt. -123456p-78
% ja teaduslik tähistus, nt. -1,234456e+78
% JA 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 kümnendkoha vormindamisest ilma eksponendita %f tegusõna

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

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 lipud stringide ja baitide vormindamiseks.

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

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.