Az Önhöz hasonló olvasók támogatják a MUO-t. Amikor a webhelyünkön található linkek használatával vásárol, társult jutalékot kaphatunk. Olvass tovább.

A kód formázása fontos módja annak olvashatóságának, konzisztenciájának és újrafelhasználhatóságának javításának. A megfelelően formázott kód könnyebben érthető, módosítható és karbantartható.

A Go egyik nagyszerű tulajdonsága a jól meghatározott formázási konvenció. A kód automatikus formázásához használhatja a beépített formátumcsomagot és a go fmt parancsot. Ez segít abban, hogy más Go programozók a lehető legkönnyebben el tudják olvasni.

A formátumcsomag és az fmt parancs

A formátum csomag szabványos formázást valósít meg a Menj a forráskódhoz. A csomag együttműködik a go format parancssori eszköz a Go kód rugalmas formázásához.

A formátumcsomag egy almodul a go csomagban. Így importálhatja:

import"go/format"

A go fmt parancs dokumentációjában a következő megadásával tallózhat Segítség parancs előtt a fmt parancs:

menj segíts fmt

Adjon meg egy fájlnevet az fmt parancs után a fájl formázásához. Ezzel beállítja a kód szóközét és behúzását, hogy megfeleljen a Go szabványoknak.

go fmt main.go

A színfalak mögött a go fmt a gofmt parancs álneve, konkrétan:

gofmt -l -w

Ezek a jelzők arra késztetik a gofmt-t, hogy minden változtatást minden megadott fájlba írjon, és felsorolja a megváltoztatott fájlok nevét.

Hozzáadhatja a -x jelölje meg az fm parancsot. Az -x jelző segít a változtatások írásában a formázóról az eredeti fájlba.

go fmt -x main.go

A -n A jelző az -x-hez hasonlóan működik, de nem módosít. Ehelyett azokat a parancsokat jeleníti meg, amelyek az fmt -n nélkül futnának:

go fmt -n main.go

A zászló jelzi a formázónak, hogy mutassa meg a változtatásokat, ami lehetővé teszi azok áttekintését, mielőtt alkalmazná őket.

Íme egy egyszerű Go program, amely nullától ötig görgeti az egész számokat, és kiírja a „Hello World!” karakterláncot.

// a main.go nevű fájl formázása a fenti példában látható módon 

csomag fő-
import"fmt"
funcfő-() {
var x int=5
számára én:=0;én fmt. Println("Helló Világ!")
}
}

A Go forráskód formázása

A formátumcsomag tartalmazza a Forrás funkció Go fájlok formázásához programokból. El kell olvasnia a fájlt, és át kell adnia annak tartalmát argumentumként a Source függvénynek.

A Forrás funkció visszaadja a formázott fájltartalmat, amelyet a fájlba írhat, vagy egy újat.

A fájlokat a Fájl olvasása funkciója ioutil csomag. A ReadFile funkció beveszi a fájlnevet, és visszaadja a fájl tartalmát és a kezelési hibát.

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

ha hiba! = nulla {
log. Fatalln("Hiba történt a fájl olvasásakor", hiba)
}

A fájltartalomnak a Forrás függvénynek való átadása visszaadja a formázott fájltartalmat és kezelési hibát.

formázott, err := formátum. Forrás (fileContent)

ha hiba! = nulla {
log. Fatalln("Formázási hiba történt a forrásfüggvénnyel", hiba)
}

A formázott fájl tartalmát a fájlba írhatja a WriteFile funkciója ioutil csomag. A WriteFile függvény beveszi a fájl nevét, tartalmát és fájl engedélyezési mód, bármilyen hibát visszaadva. Az engedélyezési mód csak akkor releváns, ha a fájl nem létezik, ebben az esetben a WriteFile létrehozza azt.

A 0644 A fájlengedélyezési mód a következőket adja:

  • A fájl tulajdonosa olvasási és írási jogosultságokkal rendelkezik.
  • Olvasási engedélyek a tulajdonossal azonos csoportba tartozó többi felhasználó számára.
  • Nincs engedély más felhasználók számára.
err = ioutil. WriteFile("main.go", formázott, 0644)

ha hiba! = nulla {
log. Fatalln("Hiba történt a fájl írása közben", hiba)
}

Alternatív megoldásként átadhatja a Go forráskódot a Forrás függvénynek formázás céljából. A kódot egy bájtszeletben adhatja meg pipákkal (`):

csomag fő-

import (
"fmt"
"go/format"
)

funcfő-() {
// egyszerű program, amely kiszámolja egy háromszög területét a matematikával
// függvény
formázott, err := formátum. Forrás([]byte(`
csomag fő-
import(
"fmt"
"matematika"
)
funcfő-(){
var a úszó64=3
var b úszó64=4
var c úszó64=5
var s úszó64=(a+b+c)/2
var terület úszó64= matematika. Sqrt (s*(s-a)*(s-b)*(s-c))
fmt. Println("A háromszög területe:,terület)
}
`))

ha hiba! = nulla {
log. Fatalln("Formázási hiba történt a forrásfüggvénnyel", hiba)
} más {
fmt. Println(húr(formázott))
}
}

Formázáskor a bájtszeletet karakterláncsá kell konvertálnia a húr funkció. Itt van a formázott forráskód.

A formázási folyamat testreszabása

A formázási folyamatot testreszabhatja a formátumcsomaggal Konfig struct. A Config struktúra olyan mezőket tartalmaz, amelyekben megadhatja a példányosítási formátumbeállításokat.

import"go/format"

config := &formátum. Config{
// A Tabwidth beállítja a tabulátoronkénti szóközök számát.
Lapszélesség: 8,

// A UseTabs azt jelzi, hogy a formázónak tabulátorokat kell-e használnia helyette
// szóközök.
UseTabs: hamis,

// A TabIndent annak meghatározására szolgál, hogy kell-e a kezdeti behúzás
// tabulátorral vagy szóközzel történik.
TabIndent: igaz,

// A NoFinalTab meghatározza, hogy el kell-e távolítani az utolsó lapot
// sorokat formázásuk előtt.
NoFinalTab: igaz,

// A Spaces megadja, hogy kell-e szóközöket használni az igazításhoz.
Spaces: igaz,

// A NoTrimTrailingSpace megadja, hogy a záró szóközt kell-e használni
// le kell vágni a sorokból a formázás előtt.
NoTrimTrailingSpace: hamis,
}

A mezők segítségével testreszabhatja a formázó viselkedését, ha a beállításokat saját igényei szerint állítja be.

Ezután ennek a struktúrának a Source metódusával formázhat egy bájtszeletet a konfigurációja alapján.

funcfő-() {
fileContent, err := ioutil. ReadFile("main.go")

// vegye figyelembe, hogy ez egy "config" típusú Source metódus, nem pedig a
// magát a `format` csomagot, bár a funkcionalitás ugyanaz, megteheted
// ehhez ragaszkodnia kell, ha konfigurálnia kell a formázót
formázott, err := config. Forrás (fileContent)

ha hiba! = nulla {
log. Fatalln("Formázási hiba történt a konfiguráció típusával", hiba)
}

ioutil. WriteFile("main.go", formázott, 0644)
}

A konfiguráció hívása. Az ehhez hasonló Source() függvény formázza a tartalmát fő.go fájlt a konfigurációs beállítások segítségével. A formázott tartalmat bájtszeletként és hibaként adja vissza.

Formázhatja és manipulálhatja a karakterláncot a Go-ban

A formázási csomag és a go fmt parancs segíthet a kód formázási folyamatának automatizálásában.

A Go egy fmt csomagot is biztosít a karakterlánc formázásához és egy strings csomagot a karakterlánc-kezeléshez.

Az fmt csomag egyszerűbb formázott I/O-t valósít meg a C printf és scanf funkcióihoz hasonló funkciókkal. A strings függvény egyszerű függvényeket valósít meg az UTF-8 kódolású karakterláncok kezeléséhez.