Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Koda formatēšana ir svarīgs veids, kā uzlabot tā lasāmību, konsekvenci un atkārtotu izmantošanu. Pareizi formatētu kodu ir vieglāk saprast, modificēt un uzturēt.

Viena no Go lieliskajām funkcijām ir tā labi definētās formatēšanas konvencijas. Lai automātiski formatētu kodu, varat izmantot iebūvēto formāta pakotni un komandu go fmt. Tas palīdzēs nodrošināt, ka citi Go programmētāji to var izlasīt pēc iespējas vieglāk.

Formātu pakotne un komanda fmt

The formātā pakotne ievieš standarta formatējumu Dodieties uz pirmkodu. Pakete sadarbojas ar go formātā komandrindas rīks Go koda formatēšanas elastībai.

Formātu pakotne ir apakšmodulis go pakotnē. Lūk, kā varat to importēt:

imports"iet/formatēt"

Varat pārlūkot komandas go fmt dokumentāciju, norādot palīdzēt komanda pirms fmt komanda:

ej palīgā fmt

Lai formatētu šo failu, pēc komandas fmt norādiet faila nosaukumu. Tādējādi tiks pielāgota koda atstarpe un atkāpe, lai tā atbilstu Go standartiem.

go fmt main.go

Aizkulisēs go fmt ir komandas gofmt aizstājvārds, konkrēti:

gofmt -l -w

Šie karodziņi liek gofmt ierakstīt visas izmaiņas katrā iesniegtajā failā un uzskaitīt mainīto failu nosaukumus.

Jūs varat pievienot -x karodziņš fm komandai. Karogs -x palīdz ierakstīt izmaiņas no formatētāja uz sākotnējo failu.

go fmt -x main.go

The -n karodziņš darbojas līdzīgi kā -x, taču tas neveic izmaiņas. Tā vietā tiek parādītas komandas, kuras fmt darbotos bez -n:

go fmt -n main.go

Karogs liek formatētājam parādīt izmaiņas, kas ļauj tās vispirms pārskatīt pirms to piemērošanas.

Šeit ir vienkārša Go programma, kas veic veselus skaitļus no nulles līdz pieciem un izdrukā virkni “Hello World!”.

// formatējot failu ar nosaukumu main.go, kā parādīts iepriekš minētajā piemērā 

iepakojums galvenais
imports"fmt"
funcgalvenais() {
var x starpt=5
priekš es:=0i fmt. Println("Sveika pasaule!")
}
}

Go avota koda formatēšana

Formātu pakotnē ir a Avots funkcija Go failu formatēšanai no programmām. Jums būs jāizlasa fails un jānodod saturs kā argumenti funkcijai Avots.

Funkcija Avots atgriezīs formatētu faila saturu, ko varat ierakstīt failā, vai arī atgriezīs jaunu failu.

Jūs varat lasīt failus, izmantojot Lasīt failu funkcija ioutil iepakojums. Funkcija ReadFile uztver faila nosaukumu un atgriež faila saturu un apstrādes kļūdu.

fileContent, err := ioutil. ReadFile("galvenais.go")

ja kļūda! = nulle {
žurnāls. Fatalln("Radās kļūda, lasot failu", kļūda)
}

Faila satura nodošana funkcijai Avots atgriež formatētu faila saturu un apstrādes kļūdu.

formatēts, err := formāts. Avots (faila saturs)

ja kļūda! = nulle {
žurnāls. Fatalln("Radās formatēšanas kļūda ar avota funkciju", kļūda)
}

Varat ierakstīt formatētā faila saturu failā, izmantojot Rakstīt failu funkcija ioutil iepakojums. Funkcija WriteFile uzņem faila nosaukumu, saturu un faila atļauju režīms, atgriežot jebkuru kļūdu(-as). Atļauju režīms ir būtisks tikai tad, ja fails neeksistē, un tādā gadījumā WriteFile to izveidos.

The 0644 faila atļauju režīms dod:

  • Faila īpašnieks lasīšanas un rakstīšanas atļaujas.
  • Lasīt atļaujas citiem lietotājiem tajā pašā grupā kā īpašnieks.
  • Nav atļauju citiem lietotājiem.
err = ioutil. WriteFile("galvenais.go", formatēts, 0644)

ja kļūda! = nulle {
žurnāls. Fatalln("Radās kļūda, rakstot failu", kļūda)
}

Varat arī nodot Go avota kodu avota funkcijai formatēšanai. Varat norādīt kodu baitu daļā, izmantojot atzīmes (`):

iepakojums galvenais

imports (
"fmt"
"iet/formatēt"
)

funcgalvenais() {
// vienkārša programma, kas aprēķina trijstūra laukumu ar matemātiku
// funkcija
formatēts, err := formāts. Avots ([]baits(`
iepakojums galvenais
imports(
"fmt"
"matemātika"
)
funcgalvenais(){
var a pludiņš64=3
var b pludiņš64=4
var c pludiņš64=5
var s pludiņš64=(a+b+c)/2
var apgabalā pludiņš64= matemātika. Sqrt (s*(s-a)*(s-b)*(s-c))
fmt. Println("Trijstūra laukums ir:,platība)
}
`))

ja kļūda! = nulle {
žurnāls. Fatalln("Radās formatēšanas kļūda ar avota funkciju", kļūda)
} cits {
fmt. Println(virkne(formatēts))
}
}

Formatējot, jums būs jāpārvērš baita daļa par virkni, izmantojot virkne funkciju. Šeit ir formatētais avota kods.

Formatēšanas procesa pielāgošana

Varat pielāgot formatēšanas procesu, izmantojot formāta pakotnes Konfig struktūra. Konfigurācijas struktūrā ir lauki, kuros var norādīt formāta opcijas instancē.

imports"iet/formatēt"

konfigurācija := &formāts. Config{
// Tabwidth iestata atstarpju skaitu vienā cilnē.
Cilnes platums: 8,

// UseTabs norāda, vai formatētājam ir jāizmanto cilnes
// atstarpes.
Izmantojiet cilnes: viltus,

// TabIndent izmanto, lai noteiktu, vai jābūt sākotnējai atkāpei
// tiek veikta, izmantojot tabulēšanas taustiņus vai atstarpes.
TabIndent: taisnība,

// NoFinalTab norāda, vai ir jānoņem pēdējā cilne
// rindas pirms to formatēšanas.
NoFinalTab: taisnība,

// Atstarpes norāda, vai līdzināšanai jāizmanto atstarpes.
Atstarpes: taisnība,

// NoTrimTrailingSpace norāda, vai beigu atstarpei ir jābūt
// tiek apgrieztas no rindām, pirms tās tiek formatētas.
NoTrimTrailingSpace: viltus,
}

Varat izmantot laukus, lai pielāgotu formatētāja darbību, iestatot opcijas atbilstoši savām prasībām.

Pēc tam varat izmantot šīs struktūras avota metodi, lai formatētu baitu šķēli, pamatojoties uz jūsu konfigurāciju.

funcgalvenais() {
fileContent, err := ioutil. ReadFile("galvenais.go")

// ņemiet vērā, ka šī ir 'config' tipa avota metode, nevis no
// pati pakotne "formāts", lai gan funkcionalitāte ir tāda pati, jūs to darīsit
// tas ir jāievēro, ja nepieciešams konfigurēt formatētāju
formatēts, err := config. Avots (faila saturs)

ja kļūda! = nulle {
žurnāls. Fatalln("Radās formatēšanas kļūda ar konfigurācijas veidu", kļūda)
}

ioutil. WriteFile("galvenais.go", formatēts, 0644)
}

Konfigurācijas izsaukšana. Funkcija Source (), piemēram, šī formatē saturu galvenais.go failu, izmantojot konfigurācijas opcijas. Tas atgriež formatēto saturu kā baitu daļu un kļūdu.

Go var formatēt un manipulēt ar virkni

Formātu pakotne un komanda go fmt var palīdzēt automatizēt koda formatēšanas procesu.

Go nodrošina arī fmt pakotni virkņu formatēšanai un virkņu pakotni virkņu manipulēšanai.

Fmt pakotne ievieš vienkāršāku formatētu I/O ar funkcijām, kas ir analogas C printf un scanf funkcijām. Virkņu funkcija ievieš vienkāršas funkcijas, lai manipulētu ar UTF-8 kodētām virknēm.