Kā formatēt virknes programmā Go

Kā formatēt virknes programmā Go

Rakstot Go kodu, virknes formatējums būs ļoti noderīgs daudzās situācijās. Iespējams, jūs parsējat ievades vai veidojat sarežģītāku izvadi nekā vienkārša savienošana. Iespējams, jūs strādājat ar citiem veidiem, nevis vienkāršas virknes.





Virknes formatēšana programmā Go izmanto pazīstamo printf funkcijas procesu un sintakse, ko izmanto arī valodas no Java līdz Haskell.





Go nodrošina dažādas metodes virkņu formatēšanai programmā fmt iepakojums. Virknes formatēšanai varat izmantot funkcijas un darbības vārdus atkarībā no operācijas vai ievades, ko vēlaties formatēt.





Virknes formatēšana programmā Go

Fmt pakotnes funkcijas ir līdzīgas līdzinieku funkcijām, piemēram printf funkcija bash vai C. Go formatēšanas darbības vārdus iegūst no C.

Jūs lietojat virknes formatēšanas darbības vārdi kā vietturi jūsu mainīgo vērtībām saturošā virknē. Pēc tam varat nodot šo formatēšanas virkni tādai funkcijai kā Printf , kopā ar vērtībām, kas atbilst šiem vietturiem.



Jūs nevarat izmantot virknes formatēšanas darbības vārdus ar Drukāt un Println metodes. Jūs varat tos izmantot ar tādām metodēm kā Printf un Sprintf .

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

The %in darbības vārds drukā jebkuru vērtību tās noklusējuma formātā. The Println metode neatpazīst darbības vārdus un izdrukā visus argumentus, ko tā saņem. The Printf un Sprintf abas funkcijas formatē pirmo virknes argumentu, ko tām nododat.





  veselu skaitļu formatēšanas rezultāts

Virknes formatēšanas funkcijas fmt pakotnē

Virkņu formatēšana Go programmēšanas valoda ir jāizmanto virknes formatēšanas funkcija un darbības vārds. Funkcija atgriež formatētu virkni, un darbības vārdi ir virknes ievades vietturi.

The Printf metode formatē ievadi atbilstoši formāta norādītājam un atgriež ierakstīto baitu vai kļūdu skaitu.





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

Parasti jums nav jāuztraucas par kļūdām, kad izmantojat Printf metodi.

The Sprintf metode formatē atbilstoši norādītajam formātam un atgriež rezultātu kā virkni.

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

The Fprintf metode formatē virkni un ieraksta to rakstītājam (metodes, kas ievieš io.Rakstnieks interfeiss)

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

The Fscanf metode skenē no lasītāja un formatē atbilstoši norādītajam formātam.

kā parādīt tālruņa ekrānu datorā
var take string 

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

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

Šajā gadījumā, Fscanf atkodē virkni no lasītāja uz ņem mainīgais un lasīt mainīgais satur formāta rezultātu.

Virknes formatēšanas darbības vārdi

Go piedāvā daudzus formatēšanas darbības vārdus, kurus varat izmantot kopā ar virknes formatēšanas funkcijām.

Ir vispārīgi virkņu formatēšanas darbības vārdi, piemēram, %in darbības vārds virknes formatēšanas funkciju piemēros. Varat izmantot vispārīgos virkņu formatēšanas darbības vārdus, lai formatētu jebkuru datu tipu.

Jūs varat izmantot %#in darbības vārds, lai izvadītu jebkuru vērtību, the %+v konstrukcijām %T darbības vārds jebkuras vērtības veidam un %% darbības vārds bez vērtībām.

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 rezultāts mainīgais satur instantiētās struktūras formatēto virkni. Ja to izdrukājat, tam vajadzētu izskatīties apmēram šādi:

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

Ir darbības vārdi konkrētu Go vietējo datu tipu, tostarp kanālu un norādes, formatēšanai.

%t Būla vērtības.
%d int, int8 utt.
%d, %#x, ja drukāts ar %#v uint, uint8 utt.
%g float32, komplekss64 utt.
%s stīga.
%p chan.
%P rādītājs.

Jūs vēlaties nodrošināt, lai jūs nepieļautu kļūdas ar darbības vārdiem, jo ​​tie ir reģistrjutīgi, piemēram, chan un rādītājs darbības vārdi.

Veselu skaitļu un pludiņu formatēšana

Ir virkņu formatēšanas darbības vārdi veselu skaitļu formatēšanai dažādas bāzes . Jūs varat izmantot jebkuru no šiem darbības vārdiem, lai formatētu veselus skaitļus

kā palielināt mikrofona skaļumu logos 10
%b 2. bāze
%c rakstzīme, ko attēlo atbilstošais Unikoda koda punkts.
%d bāze 10.
%O 8. bāze.
%O 8. bāze ar 0o prefiksu.
%q burtu burts ar vienu pēdiņu droši aizbēga ar Go sintaksi.
%x 16. pamatne ar mazajiem burtiem a-f.
%X 16. bāze ar lielajiem burtiem A-F.
%IN Unikoda formāts: U+1234; tāds pats kā 'U+%04X'.

Piemēram, jūs varat formatēt veselu skaitli, izmantojot %d darbības vārds:

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

Šie ir darbības vārdi peldošā komata skaitļu formatēšanai.

%b zinātniskais apzīmējums bez decimāldaļas ar eksponenta pakāpju divi, strconv veidā. FormatFloat ar 'b' formātu, piem. -123456p-78
%un zinātniskais apzīmējums, piem. -1,234456e+78
%UN decimālzīme, bet bez eksponenta, piemēram, 123,456
%f decimālzīme, bet bez eksponenta, piemēram, 123,456
%F sinonīms vārdam %f.
%g %e lieliem eksponentiem, %f pretējā gadījumā. Precizitāte zemāk.
%G %E lieliem eksponentiem, %F pretējā gadījumā
%x heksadecimālais apzīmējums (ar divu eksponentu decimālo jaudu), piemēram, -0x1,23abcp+20.
%X heksadecimālais apzīmējums ar lielajiem burtiem, piem. -0X1.23ABCP+20.

Šeit ir piemērs decimālzīmes formatēšanai bez eksponenta ar %f darbības vārds.

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

Ja neesat pārliecināts par veidu, vienmēr varat izmantot vispārīgos darbības vārdus.

Virkņu un baitu formatēšana

Pakalpojumā Go virknes un baitu veidu daļas ir diezgan līdzīgas. Šie ir karodziņi virkņu un baitu formatēšanai.

%s virknes vai šķēles neinterpretētie baiti
%q virkne ar dubultpēdiņu droši izkļuva ar Go sintaksi
%x 16. bāze, mazie burti, divas rakstzīmes katrā baitā
%X 16. bāze, lielie burti, divas rakstzīmes katrā baitā

Šeit ir piemērs virknes formatēšanai ar %s darbības vārds.

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

Fmt pakotne ir būtiska Python programmēšanai

The fmt pakotne satur lielāko daļu virkņu formatēšanai nepieciešamo funkcionalitātes. Go arī nodrošina a stīgas pakete stīgu manipulācijām un a žurnāls pakotne, kas var formatēt virknes reģistrēšanai.

The fmt pakotnei ir funkcijas, kas īsteno io.Rakstnieks un io.Lasītājs saskarnes. Tas noderēs daudzos lietošanas gadījumos, piemēram, tīmekļa un komandrindas lietojumprogrammu izveidei.