Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Koodin muotoilu on tärkeä tapa parantaa sen luettavuutta, johdonmukaisuutta ja uudelleenkäytettävyyttä. Oikein muotoiltu koodi on helpompi ymmärtää, muokata ja ylläpitää.

Yksi Go: n hienoista ominaisuuksista on sen hyvin määritellyt muotoilukäytännöt. Voit käyttää sisäänrakennettua muotopakettia ja go fmt -komentoa koodin automaattiseen muotoiluun. Tämä auttaa varmistamaan, että muut Go-ohjelmoijat voivat lukea sen mahdollisimman helposti.

Muotopaketti ja fmt-komento

The muoto paketti toteuttaa standardin muotoilun Siirry lähdekoodiin. Paketti toimii yhdessä mene muotoon komentorivityökalu Go-koodin muotoilun joustavuuteen.

Muotopaketti on alimoduuli go-paketissa. Näin voit tuoda sen:

tuonti"go/format"

Voit selata go fmt -komennon dokumentaatiota määrittämällä auta komento ennen fmt komento:

mene apuun fmt

Määritä tiedoston nimi fmt-komennon jälkeen tiedoston alustamiseksi. Tämä säätää koodisi välilyönnit ja sisennykset Go-standardien mukaisiksi.

instagram viewer

go fmt main.go

Kulissien takana go fmt on alias gofmt-komennolle, erityisesti:

gofmt -l -w

Nämä liput saavat gofmt: n kirjoittamaan muutokset jokaiseen toimittamaasi tiedostoon ja luettelemaan muuttamiensa tiedostojen nimet.

Voit lisätä -x lippu fm-komentoon. Lippu -x auttaa kirjoittamaan muutoksia muotoilijasta alkuperäiseen tiedostoon.

go fmt -x main.go

The -n lippu toimii samalla tavalla kuin -x, mutta se ei tee muutoksia. Sen sijaan se näyttää komennot, jotka fmt suorittaisivat ilman -n: tä:

go fmt -n main.go

Lippu käskee muotoilijaa näyttämään muutokset, jolloin voit tarkistaa ne ennen kuin otat ne käyttöön.

Tässä on yksinkertainen Go-ohjelma, joka kiertää kokonaislukuja nollasta viiteen ja tulostaa merkkijonon "Hello World!".

// muotoilemalla main.go-nimisen tiedoston yllä olevan esimerkin mukaisesti 

paketti pää
tuonti"fmt"
funcpää() {
var x int=5
varten minä:=0;i fmt. Println("Hei maailma!")
}
}

Go-lähdekoodin muotoilu

Muotopaketti sisältää a Lähde toiminto Go-tiedostojen alustamiseen ohjelmista. Sinun on luettava tiedosto ja välitettävä sen sisältö argumentteina lähdefunktiolle.

Lähde-toiminto palauttaa muotoillun tiedoston sisällön, jonka voit kirjoittaa tiedostoon tai uuteen.

Voit lukea tiedostoja Lue tiedosto toiminto ioutil paketti. ReadFile-toiminto ottaa tiedoston nimen ja palauttaa tiedoston sisällön ja käsittelyvirheen.

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

jos virhe! = nolla {
Hirsi. Fatalln("Tiedoston lukemisessa tapahtui virhe", virhe)
}

Tiedoston sisällön välittäminen lähdefunktiolle palauttaa muotoillun tiedoston sisällön ja käsittelyvirheen.

muotoiltu, err := muoto. Lähde (tiedoston sisältö)

jos virhe! = nolla {
Hirsi. Fatalln("Lähdetoiminnossa tapahtui muotoiluvirhe", virhe)
}

Voit kirjoittaa muotoillun tiedoston sisällön tiedostoon Kirjoita tiedosto toiminto ioutil paketti. WriteFile-toiminto ottaa tiedoston nimen, sisällön ja tiedostojen käyttöoikeustila, palauttaa mahdollisen virheen. Lupatila on merkityksellinen vain, jos tiedostoa ei ole olemassa, jolloin WriteFile luo sen.

The 0644 tiedoston käyttöoikeustila antaa:

  • Tiedoston omistaja luku- ja kirjoitusoikeudet.
  • Lukuoikeudet muille käyttäjille samassa ryhmässä kuin omistaja.
  • Ei oikeuksia muille käyttäjille.
err = ioutil. WriteFile("main.go", muotoiltu, 0644)

jos virhe! = nolla {
Hirsi. Fatalln("Tiedoston kirjoittamisessa tapahtui virhe", virhe)
}

Vaihtoehtoisesti voit välittää Go-lähdekoodin Source-funktiolle muotoilua varten. Voit määrittää koodin tavuviipaleessa rastiilla (`):

paketti pää

tuonti (
"fmt"
"go/format"
)

funcpää() {
// yksinkertainen ohjelma, joka laskee kolmion pinta-alan matematiikan avulla
// toiminto
muotoiltu, err := muoto. Lähde([]tavu(`
paketti pää
tuonti(
"fmt"
"matematiikka"
)
funcpää(){
var a kellua64=3
var b kellua64=4
var c kellua64=5
var s kellua64=(a+b+c)/2
var alueella kellua64= matematiikka. Sqrt (s*(s-a)*(s-b)*(s-c))
fmt. Println("Kolmion pinta-ala on:,alue)
}
`))

jos virhe! = nolla {
Hirsi. Fatalln("Lähdetoiminnossa tapahtui muotoiluvirhe", virhe)
} muu {
fmt. Println(merkkijono(muotoiltu))
}
}

Muotoilun yhteydessä sinun on muunnettava tavuosio merkkijonoksi merkkijono toiminto. Tässä on muotoiltu lähdekoodi.

Muotoiluprosessin mukauttaminen

Voit mukauttaa muotoiluprosessia muotoilupaketin avulla Konfig struct. Config-rakenne sisältää kenttiä, joissa voit määrittää muotoasetukset instantiossa.

tuonti"go/format"

config := &muoto. Config{
// Tabwidth määrittää välilyöntien määrän sarkainta kohden.
Välilehden leveys: 8,

// UseTabs osoittaa, pitäisikö muotoilijan käyttää välilehtiä sen sijaan
// välilyönnit.
Käytä välilehtiä: väärä,

// TabIndentiä käytetään määrittämään, pitäisikö ensimmäinen sisennys olla
// tehdään sarkaimilla tai välilyönneillä.
TabIndent: totta,

// NoFinalTab määrittää, poistetaanko viimeinen välilehti
// riviä ennen niiden muotoilua.
NoFinalTab: totta,

// Spaces määrittää, käytetäänkö välilyöntejä tasaukseen.
Tilat: totta,

// NoTrimTrailingSpace määrittää, pitäisikö perässä olevan välilyönnin käyttää
// leikataan riveistä ennen niiden muotoilua.
NoTrimTrailingSpace: väärä,
}

Voit käyttää kenttiä muokataksesi muotoilijasi toimintaa asettamalla asetukset tarpeidesi mukaan.

Voit sitten käyttää tämän rakenteen lähdemenetelmää tavuviipaleen muotoilemiseen kokoonpanosi perusteella.

funcpää() {
fileContent, err := ioutil. ReadFile("main.go")

// Huomaa, että tämä on "config"-tyyppinen lähdemenetelmä, ei lähteestä
// `format`-paketti, vaikka toiminnallisuus on sama
// sinun on noudatettava tätä, jos sinun on määritettävä muotoilija
alustettu, err := config. Lähde (tiedoston sisältö)

jos virhe! = nolla {
Hirsi. Fatalln("Asetusten tyypin kanssa tapahtui muotoiluvirhe", virhe)
}

ioutil. WriteFile("main.go", muotoiltu, 0644)
}

Konfigin soittaminen. Source()-funktio muotoilee sisällön sisällön main.go tiedosto määritysvaihtoehtojen avulla. Se palauttaa muotoillun sisällön tavulohkona ja virheenä.

Voit muotoilla ja manipuloida merkkijonoa Gossa

Muotoilupaketti ja go fmt -komento voivat auttaa sinua automatisoimaan koodin muotoiluprosessin.

Go tarjoaa myös fmt-paketin merkkijonojen muotoiluun ja merkkijonopaketin merkkijonojen käsittelyyn.

Fmt-paketti toteuttaa yksinkertaisemman alustetun I/O: n toiminnoilla, jotka vastaavat C: n printf- ja scanf-toimintoja. Merkkijonofunktio toteuttaa yksinkertaisia ​​toimintoja UTF-8-koodattujen merkkijonojen käsittelemiseksi.