Go:
TOML:n kanssa työskentely
Kuinka:
Aloittaaksesi työskentelyn TOML:n kanssa Go:ssa, sinun on ensin sisällytettävä kirjasto, joka osaa jäsentää TOML-tiedostoja, sillä Go:n vakio kirjasto ei natiivisti tue TOML:ää. BurntSushi/toml
-paketti on suosittu valinta tähän. Ensiksi, varmista että asennat sen:
go get github.com/BurntSushi/toml
Tässä on yksinkertainen esimerkki sen käytöstä. Oletetaan, että sinulla on konfiguraatiotiedosto nimeltä config.toml
, jossa on seuraava sisältö:
title = "TOML Esimerkki"
[database]
server = "192.168.1.1"
ports = [ 8001, 8001, 8002 ]
connection_max = 5000
enabled = true
Nyt, sinun täytyy luoda Go-rakenne, joka heijastaa TOML-rakennetta:
package main
import (
"fmt"
"github.com/BurntSushi/toml"
)
type Config struct {
Title string
Database Database `toml:"database"`
}
type Database struct {
Server string
Ports []int
ConnectionMax int `toml:"connection_max"`
Enabled bool
}
func main() {
var config Config
if _, err := toml.DecodeFile("config.toml", &config); err != nil {
fmt.Println(err)
return
}
fmt.Printf("Otsikko: %s\n", config.Title)
fmt.Printf("Tietokannan palvelin: %s\n", config.Database.Server)
}
Näyte tuloste:
Otsikko: TOML Esimerkki
Tietokannan palvelin: 192.168.1.1
Syväsukellus
TOML:n loi Tom Preston-Werner, yksi GitHubin perustajista, tarjoamaan suoraviivaista konfiguraatiotiedoston formaattia, joka voidaan helposti karttaa hajautustauluun ja ymmärtää hetkessä ilman aikaisempaa formaatin tuntemusta. Se eroaa JSON:ista tai YAML:stä, jotka vaikka nekin ovat laajasti käytössä, voivat olla vähemmän ihmisystävällisiä konfiguraatiotiedostoissa sulkujen, lainausmerkkien ja sisennyksen ongelmien vuoksi.
BurntSushi/toml
-paketti Go:ssa on vankka kirjasto, joka ei ainoastaan mahdollista dekoodausta, vaan myös TOML-tiedostojen enkoodausta, tehden siitä monipuolisen valinnan sovelluksille, jotka tarvitsevat lukea ja kirjoittaa konfiguraatiotiedostoja tässä formaatissa. Kuitenkin, tekniikoiden edetessä ja uusien Go-versioiden myötä, vaihtoehtoja kuten pelletier/go-toml
on ilmestynyt, tarjoten paranneltua suorituskykyä ja lisäominaisuuksia kuten puurakenteiden manipulointia ja kyselytukea.
Vaikka TOML onkin loistava valinta monille sovelluksille, sovelluksen konfiguraation monimutkaisuudesta ja henkilökohtaisista tai tiimin mieltymyksistä riippuen, muut formaatit kuten YAML tai JSON saattavat olla paremmin sopivia, erityisesti, jos konfiguraatio vaatii monimutkaisempia tietorakenteita, joita TOML:n yksityiskohtainen luonne ei ehkä tyylikkäästi vangitse. Siitä huolimatta, suoraviivaisten, helposti luettavien ja muokattavien konfiguraatioiden osalta, TOML yhdessä Go:n vahvan tyyppijärjestelmän ja edellä mainittujen kirjastojen kanssa on erinomainen valinta.